What is the difference between using $scope and this in controllers?
本问题已经有最佳答案,请猛点这里访问。
我到处搜索,但我不明白为什么有时人们在控制器中使用
1 2 3 4 5 6 7 8 9 10 11 12 | angular.module('app').controller('MyCtrl', function($scope) { // this $scope.s_my_int = 12; $scope.s_myFunction = function() { alert("I'm a function!") }; $scope.$on('user.login', function () { alert("Welcome!"); } // and this.t_my_int = 12; this.t_myFunction = function() { alert("I'm a function!") }; $scope.$on('user.login', function () { alert("Welcome!"); } } |
作用域是可供视图使用的对象。视图可以使用角度绑定表达式,这些表达式在作用域上进行计算:
1 2 3 | {{ s_my_int }} // will display 12 {{ t_my_int }} // won't display anything: the scope doesn't have a t_my_int property |
然而,有些人更喜欢将控制器本身暴露在作用域中。这可以使用
1 2 3 | {{ s_my_int }} // will display 12 {{ foo.t_my_int }} // will display 12 |
这是个人喜好的问题。我个人更喜欢使用这个范围,因为它避免了与处理