附加自定義指令,它允許使用ng-change作爲屬性。ngChange在自定義指令中觸發兩次
問題是,當我在同一個視圖中使用它兩次時,我注意到bar方法激發兩次,我發現問題是$viewChangeListeners
存儲控制器的相同方法兩次。注意:請注意,也許我有兩個相同的指令兩次不同的ng-change方法
有沒有任何想法解決這個問題?
HTML:
<my-directive ng-model="foo" items="items" ng-change="bar1(foo)"></my-directive>
<my-directive ng-model="foo2" items="items" ng-change="bar2(foo2)"></my-directive>
指令:
template: '<div ng-repeat="item in items" ng-click="updateModel(item)">{{item}}</div>',
require: "ngModel",
scope : {
items : "="
},
link: function(scope, element, attrs, ctrl){
scope.updateModel = function(item)
{
ctrl.$setViewValue(item);
}
ctrl.$viewChangeListeners.push(function() {
scope.$eval(attrs.ngChange);
});
}
試試這一個,單擊向上(1),然後點擊向下的(1),然後單擊在上(1)。事件觸發如下:bar1,bar2,bar1,bar2
對不起,包括! –
你如何看待它以這種方式燃燒?我檢查了它,我認爲當你第二次點擊upper 1時它不會觸發(因爲它沒有改變)。 –