我们可以使用$scope
作为angularJS
angular.module('myApp',[])
.controller("myController", function($scope){
$scope.info = "Hello";
})

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myApp">
<div ng-controller="myController">
<input type="text" ng-model="info">
{{info}}
</div>
</body>
&#13;
或者我们可以在this
中明确使用controller
,并将控制器名称用作视图中的命名空间,如:
angular.module('myApp',[])
.controller("myController", function(){
this.info = "Hello";
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myApp">
<div ng-controller="myController as ctrl">
<input type="text" ng-model="ctrl.info">
{{ctrl.info}}
</div>
</body>
&#13;
我的问题是,差异和选择使用的是什么?
答案 0 :(得分:1)
链接Angularjs "Controller as" or "$scope"中的这个答案给出了关于控制器与$范围的解释。
另外,根据我自己的经验,我更喜欢controllerAs语法。因为,我通常会将动态数据添加到对象数组中。
使用$ scope选项时,当新数据被推入数组时,ng-repeat无法自行刷新,例如$ scope.dataArray
使用controllerAs语法时,每当我将数据推入dataArray对象时,ng-repeat都会将新数据添加到视图中。
这主要是因为,当使用$ scope语法时,对数组的任何更改都会创建一个新引用。但是,使用controllerAs语法时,始终会维护数组引用。