1 来看例子
2 angular.module("app",[])
3 .controller("demoController",["$scope",function($scope){
4 $scope.title = "angualr";
5 }])
6
7
8 <div ng-app="app" ng-controller="demoController"> hello : {{title }} ! </div>
9
10 对于view与controller的绑定一般使用内置service $scope
11
12 在angurlar1.2+版本以后加入了controllerAs语法
13 angular.module("app",[])
14 .controller("demoController",[function(){
15 this.title = "angualr";
16 }])
17 <div ng-app="app" ng-controller="demoController as demo"> hello : {{demo.title}} ! </div>
18 这里我们可以看见现在controller不再有$scope的注入了,感觉controller就是一个很简单的平面的JavaScript对象了,不存在任何的差别了。再则就是view上多增加了个demoController as demo,给controller起了一个别名,在此后的view模板中靠这个别名来访问数据对象。
19 controller内部的this指向view视图的demo
20
21 angular源码:
22 if (directive.controllerAs) { locals.$scope[directive.controllerAs] = controllerInstance; }
23 将controllerAs绑定到了$scope对象上