有没有办法使用多个对象订阅事件 $watch
例如
$scope.$watch('item1, item2', function () { });
Run Code Online (Sandbox Code Playgroud) 我想知道在评估指令的所有(或仅一些)属性(没有隔离范围)之后,只能执行一次回调.将配置传递给指令真的很棒.问题是你可以分别观察每个属性并多次触发回调.
在示例中,我们有一个没有隔离范围的指令,它遵守两个属性:name和surname.在任何更改action回调被触发后:
HTML
<button ng-click="name='John';surname='Brown'">Change all params</button>
<div person name="{{name}}" surname="{{surname}}"></div>
Run Code Online (Sandbox Code Playgroud)
JS
angular.module('app', []).
directive('person', function() {
return {
restrict: 'A',
link: function($scope, $elem, $attrs) {
var action = function() {
$elem.append('name: ' + $attrs.name + '<br/> surname: ' + $attrs.surname+'<br/><br/>');
}
$attrs.$observe('name', action);
$attrs.$observe('surname', action);
}
}
});
Run Code Online (Sandbox Code Playgroud)
这里的人物.
因此,效果是在一次点击更改名称和姓氏后,action回调被触发两次:
name:
surname: Brown
name: John
surname: Brown
Run Code Online (Sandbox Code Playgroud)
所以问题是:action名称和姓氏值都改变了,只能被解雇一次?