Javascript 在具有隔离作用域的指令中使用ng repeat
具有隔离作用域的指令中的Javascript 在具有隔离作用域的指令中使用ng repeat,javascript,angularjs,angularjs-directive,angularjs-scope,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,Angularjs Ng Repeat,具有隔离作用域的指令中的ng repeat未拾取通过'='绑定传递的属性 HTML: <body ng-controller="myCtrl"> <div my-directive list="users"> <ul> <li ng-repeat="item in list"> {{item.name}} </li>
ng repeat
未拾取通过'='绑定传递的属性
HTML:
<body ng-controller="myCtrl">
<div my-directive list="users">
<ul>
<li ng-repeat="item in list">
{{item.name}}
</li>
</ul>
</div>
</body>
var app = angular.module('myApp', []);
app.controller('myCtrl', function ($scope) {
$scope.users = [
{ name: 'John Doe'},
{ name: 'Jane Doe' },
{ name: 'Jesse Doe' }
];
});
app.directive('myDirective', [function() {
return {
restrict: 'A',
scope: {
list: '='
},
link: function(scope, element, attrs) {
}
}
}]);
上述代码适用于angular 1.0.8:
但不适用于1.2.14:
我缺少的“1.2.x”改变了什么?来自:
隔离仅暴露于具有范围属性的指令的范围
没有隔离作用域的指令不会从
隔离同一元素上的指令。如果您的代码依赖于此
行为(非隔离指令)需要从
隔离作用域),将隔离指令更改为使用作用域局部变量
明确地传递这些
因此,对于>1.2.0,隔离指令是完全隔离的。“没有隔离作用域的指令不会从同一元素上的隔离指令获取隔离作用域。”--这不是与问题中提到的场景相反吗。@文档中的Davin Tyron:ngRepeat指令对集合中的每个项实例化一次模板。每个模板实例都有自己的作用域,其中给定的循环变量设置为当前集合项,$index设置为项索引或键。
ngRepeat创建了一个隔离作用域,shazmoh的代码也创建了一个隔离作用域。