不知道是否可以在評估指令的全部(或僅某些)屬性(沒有隔離範圍)後僅執行一次回調。屬性非常適合將配置傳遞給指令。事情是你可以分別觀察每個屬性並多次觸發回調。
在這個例子中,我們有一個沒有獨立範圍的指令,它觀察到兩個屬性:姓名和姓氏。任何更改後action
回調觸發:
HTML
<button ng-click="name='John';surname='Brown'">Change all params</button>
<div person name="{{name}}" surname="{{surname}}"></div>
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);
}
}
});
Plunker here。
所以效果是,在點擊更改姓名後,action
回調觸發了兩次:
name:
surname: Brown
name: John
surname: Brown
所以問題是:action
只有一次既姓名值改變解僱?
太謝謝你了! – iamtankist