在控制器中使用$ scope和this有什么区别?
这个问题在这里已经有了答案:
范围是可用于视图的对象。 视图可以使用Angular绑定表达式,并且这些表达式在范围上进行评估:
<div ng-controller="MyCtrl">
{{ s_my_int }} // will display 12
{{ t_my_int }} // won't display anything: the scope doesn't have a t_my_int property
</div>
然而,有些人更喜欢将控制器本身暴露给范围。 这可以使用controller as
语法:
<div ng-controller="MyCtrl as foo">
{{ s_my_int }} // will display 12
{{ foo.t_my_int }} // will display 12
</div>
这是一个偏好问题。 我个人更喜欢使用范围,因为它避免了与处理this
有关的许多JS问题。 控制器作为语法的优势在于,它允许在控制器嵌套时告知哪个控制器获取值和调用函数,而不是依赖于范围继承。
上一篇: What is the difference between using $scope and this in controllers?
下一篇: AngularJS: code not working when iterating through object