【发布时间】:2017-11-01 18:54:57
【问题描述】:
我有如下指令:
.directive('myDirective', function() {
return {
restrict: 'AE',
replace: true,
templateUrl: '/myDirective.html?v=' + window.buildNumber,
link: function (scope, element, attrs) {
scope.itemClasses = attrs.itemClasses || '';
}
}
})
它的模板看起来像:
<div class="my-directive">
<div class="items" ng-repeat="item in items">
<div class="item {{ itemClasses }}">{{ item.title }}</div>
</div>
</div>
并且该指令在不同的地方被调用(每个模板调用一次),如下所示:
<my-directive item-classes="col-md-6"></my-directive>
...
<my-directive item-classes="col-md-12"></my-directive>
并且所有模板都呈现相同的itemClasses 值。同时链接函数设置了正确的值(我通过调用console.log()检查了这个事实)。
如果我将scope: true 属性添加到指令的代码中,那么一切正常。因此,似乎拥有自己的继承范围会有所帮助。你能解释一下这种行为吗?
谢谢。
【问题讨论】:
标签: javascript angularjs scope angularjs-scope