Javascript 与指令'一起一次性绑定;s双向绑定和ng重复
假设我们有以下指令:Javascript 与指令'一起一次性绑定;s双向绑定和ng重复,javascript,angularjs,angular-directive,Javascript,Angularjs,Angular Directive,假设我们有以下指令: app.directive('foo', function() { return { restrict: 'E', scope: { prop: '=' }, template: '<h1>{{prop}}</h1>' }; }); 在这种情况下,如果item以后发生更改,则会通知foo,就好像有常规绑定一样。:似乎没有任何实际效果(它确实阻止创建额外的手表,我自己检查了一下)。我创建了一个例子来说明这两种情况 我的
app.directive('foo', function() {
return {
restrict: 'E',
scope: { prop: '=' },
template: '<h1>{{prop}}</h1>'
};
});
在这种情况下,如果item
以后发生更改,则会通知foo
,就好像有常规绑定一样。:
似乎没有任何实际效果(它确实阻止创建额外的手表,我自己检查了一下)。我创建了一个例子来说明这两种情况
我的问题是:这种行为正确吗?我希望这两种情况下都是一致的。我相信你的问题的答案是肯定的,这是正确的行为。当
items
中的item
发生更改时,将创建模板的新实例,而旧实例将被删除。在您的例子中,将创建一个新的foo
元素,因此prop
属性值也是新的。这来自角度文档:
当集合的内容更改时,ngRepeat会对DOM进行相应的更改:
- 添加项时,模板的新实例将添加到DOM中
- 删除项时,其模板实例将从DOM中删除
- 当项目被重新排序时,它们各自的模板在DOM中被重新排序
它没有明确说明更新时会发生什么。但是,我相信新的会取代旧的,而不是更新的。先生,你完全正确。我刚刚用这个确认了这一点
ngRepeat
删除当前元素,并在项目本身更新时添加新元素。
<foo prop="::someProperty"></foo>
<foo ng-repeat="item in items" prop="::item"></foo>