angularjs $ watchGroup以控制器作为语法

Zac*_*ach 6 angularjs angularjs-scope

基于我最近阅读的一堆Angular JS样式指南,似乎有几个原因,首选Angular JS控制器的'controller as'语法.

我已经看到了如何注入$ scope以便使用$ watch,$ on等特殊方法的示例.

下面的示例显示了如何使用'controller as'语法成功使用$ watch:

$scope.$watch(angular.bind(this, function () { 
    return this.name;
}), function(value) {
    console.log('Name change to ' + value);
});
Run Code Online (Sandbox Code Playgroud)

我没有找到任何地方是如何使用这种类似的方法使用$ watchGroup.有谁知道如何做到这一点?

Shu*_*awa 13

假设控制器有两个属性,firstNamelastName.要在更改任何一个函数时调用函数,请使用函数数组作为第一个参数$watchGroup.

var self = this;
$scope.$watchGroup([function() {
    return self.firstName;
}, function () {
    return self.lastName;
}], function(newValues, oldValues) {
    console.log('Name change to ' + newValues[0] + ' ' + newValues[1]);
});
Run Code Online (Sandbox Code Playgroud)

请注意,这newValues是一个包含new firstName和的数组lastName.