我对Angular很新,所以请原谅我的补救问题。我已经简要地搜索了一下答案,但似乎找不到直接相关的答案。
在大多数示例中,我看到$scope
传递给控制器,但有些地方他们在控制器功能对象本身上使用this
来存储模型状态。使用一个比另一个有什么好处吗?
这两个似乎表现的方式相同,但我很好奇其中一个是否有益于另一个。
var myApp = angular.app('MyApp', []);
myApp.controller('PersonController', function() {
this.name = 'Bob';
this.setName = function(name) {
this.name = name;
};
});
myApp.controller('PersonController1', ['$scope', function($scope) {
$scope.name = 'Bob';
$scope.setName = function(name) {
$scope.name = name;
};
});
最大的区别似乎是在视图中使用它们 - 只使用名称访问$scope
属性,而当控制器使用自身来存储状态时,必须使用点符号来访问它。 / p>
<div ng-controller="PersonController as pc">
{{pc.name}}
</div>
<div ng-controller="PersonController1 as pc">
{{name}}
</div>
差异只是味道问题吗?或者,如果我选择一种方法而不是另一种方法,还会有其他事情发生吗?