js代码:
(function(window, angular){
var module = angular.module("indexModule",[]);
module.controller('indexController',['$rootScope','$scope',function($scope){
$scope.address = "1";
$scope.showAddress = function(){
alert($scope.address);
}
}]);
}(window, angular))
html代码:
<body ng-app="indexModule" ng-controller="indexController">
<input type="text" ng-model="address"/>
<label>{{address}}</label>
<button ng-click="showAddress()">show address</button>
</body>
你会发现,改变输入框里面的内容,在点击按钮,address的值还是1,但是界面上的label却和输入框的值一致 ……
感觉界面上的address和scope里面的address不是一个东西
问题出在controller的定义上,我引注入两个对象:'$rootScope','$scope',但是我只使用了一个:$scope,我以为angular会根据名字来传入对应的对象,其实人家是按顺序来的,第一个参数是$rootScope,第二个是$scope,所以,其实我在controller里面操作的$scope是$rootScope
呼,一个晚上都是泪……