全部:
我是 AngularJS 指令的新手,我有一个关于监视作用域变量的问题:
我想知道什么时候应该手动添加范围。$watch,例如:我构建一个像这样的指令
app.directive("followerlist", function(){
return {
restrict: "AE",
scope: {
fllws: "="
},
templateUrl: "tmpl/followerlist.html",
controller: function(){
},
link: function(scope, EL, attrs){
}
}
});
模板如下:
<ul>
<li ng-repeat="f in fllws">
{{f.login}}
</li>
</ul>
html 是这样的:
<body ng-controller="main">
<followerlist fllws="followers"></followerlist>
</body>
这样,我不需要手动注册任何观察者,但仍然可以响应数据更改(如果我更改主 Controller 中的 $scope.followers,列表可以立即更改)
我认为我应该手动观察外部和内部变量的变化(有时除非我手动注册观察者,否则变化不会得到响应),我想知道是否有人可以给我一些关于何时应该手动观察以及何时进行的总结不需要吗?
谢谢
最佳答案
您的代码无需手动创建监视即可工作,因为当您将 fllws
属性绑定(bind)到模板时,Angular 已为您完成了该操作。 Angular 会自动为每个绑定(bind)执行此操作,除非您使用 one-time binding .
每次当模型发生变化或条件成立时需要执行某些操作时,您都应该手动创建一个监视。 This answer包含更多相关技术信息。
关于angularjs - 我们什么时候需要手动监视作用域变量,什么时候不在 AngularJS 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30203348/