Aid*_*Gee 5 javascript view angularjs angularjs-scope angularjs-ng-init
过去几周我一直在学习angularJs,并且正在研究一些大型应用程序,以了解现实世界中的工作原理.在大多数情况下,我注意到加载视图时:
ng-init="init()"
Run Code Online (Sandbox Code Playgroud)
即在相关控制器中调用函数init().用于设置初始值.
但是(很大但是)在阅读ngInit上的角度文档时,我得到了一个相当严厉的描述:
"ngInit唯一适当的用于别名ngRepeat的特殊属性,如下面的演示所示.除了这种情况,你应该使用控制器而不是ngInit来初始化作用域上的值."
所以我的问题是,在加载视图时使用ngInit初始化作用域中的值是不好的做法?如果是这样,为什么会这样?什么是正确的方法?
这是不好的做法,因为视图在与控制器不同的时间初始化,并且摘要周期必须处理该功能,这是该周期的不必要的添加.我假设你有类似的东西:
视图:
<div ng-init="init()">
<span>{{thing}}</span>
</div>
Run Code Online (Sandbox Code Playgroud)
控制器:
Module.controller('viewController', function(scope){
...
var init = function(){
scope.thing = "123";
...
}
...
})
Run Code Online (Sandbox Code Playgroud)
更好的做法是这样做:
视图:
<div>
<span ng-bind="thing"></span>
</div>
Run Code Online (Sandbox Code Playgroud)
控制器:
Module.controller('viewController', function(scope){
scope.thing = "123";
})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10545 次 |
最近记录: |