要使用 #watchGroup 使用控制器作为语法,首先你必须以下列方式声明你的控制器:
app.controller('Controller1', ['$scope', Controller1]);
function Controller1($scope) {
var vm = this;
vm.firstName = 'Agustin';
vm.lastName = 'Cassani';
vm.newVal = '';
vm.oldVal = '';
$scope.$watchGroup(['vm.firstName', 'vm.lastName'], function (newValue, oldValue) {
vm.newVal = newValue;
vm.oldVal = oldValue;
});
}
如您所见,我们在 vm 变量中引用了“this”。
在你的应用程序路由配置中,如果你在路由定义中声明你的控制器,你会得到这样的东西,当然:
var app = angular.module('app', ['ngRoute']);
app.config(['$routeProvider',
function ($routeProvider) {
$routeProvider.
when('/', {
templateUrl: 'app/views/view1.html',
controller: 'Controller1',
controllerAs: 'vm'
}).
otherwise({
redirectTo: '/'
});
}]);
最后,我们视图的 html 会是这样的:
<input type="text" data-ng-model="vm.firstName" />
<input type="text" data-ng-model="vm.lastName"/>
<br/>
<div>
{{vm.newVal}}
</div>
<div>
{{vm.oldVal}}
</div>
I.H.I.H(希望对您有所帮助!)