angularjs - 我们什么时候需要手动监视作用域变量,什么时候不在 AngularJS 中

标签 angularjs angularjs-directive

全部:

我是 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/

相关文章:

javascript - Angular : updating view with value passed from directive to controller

javascript - Angular Jasmine - 模拟服务(angularjs-rails-resource) - TypeError : object is not a function

javascript - 从指令访问 AngularJS 范围

angularjs - 为什么我无法获取自定义指令的属性值?

javascript - 将行为传递给指令的正确 "Angular"方法?

javascript - Angularjs:在另一个https请求后显示远程生成的图像

javascript - AngularJS:数据格式化的推荐做法是什么?

angularjs - ExpressJS 中间件的 "res.sendFile"和 Angular 客户端的 "ng-src"的组合不起作用

javascript - ngroute 后指令加载不正确

angularjs - 对多个元素使用相同的指令