ディレクティブのすべての(または一部の)属性の後にコールバックを1回だけ実行することは可能でしょうか?属性は、設定をディレクティブに渡すのに本当に素晴らしいものです。つまり、各属性を個別に監視し、コールバックを何回か実行できるということです。
この例では、名前と姓の2つの属性を観測する分離スコープのないディレクティブがあります。変更後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
名と姓の値を変更し、両方で1回のみ起動することができますか?
はありがとうございました! – iamtankist