2016-01-13 105 views
1

我有一些自定義指令,我已經綁定了ng-model和ng-change指令信息。AngularJS - 觸發ngChange?

例子:

<custom-directive ng-model="users" ng-change="changed()"> 

</custom-directive> 

指令後執行包含一些輸入,文本域等。我希望當事情在這個輸入,文字區域改爲執行changed()裝訂成ng-change功能,始終。

我可以執行指令controllerlinkng-change嗎?

喜歡本作例子:

.directive('customDirective', function() { 
    return { 
     restrict: 'E', 
     replace: true, 
     require: 'ngModel', 
     templateUrl: 'src/template.html', 
     link: function (scope, elem, attrs, ngModel) { 
      executeNgChange(); 
     } 
    }; 
}) 
+1

我認爲你可以做一個'$ scope。$ eval(attrs.ngChange)' – devqon

回答

1

您應該可以使用角度的範圍函數表達式綁定的功能綁定在你的指令ng-change

.directive('customDirective', function() { 
    return { 
     restrict: 'E', 
     replace: true, 
     require: 'ngModel', 
     scope: { 
      change: '&ngChange' 
     } 
     templateUrl: 'src/template.html', 
     link: function (scope, elem, attrs, ngModel) { 
      scope.change(); // or use ng-change="change()" in your directive template 
     } 
    }; 
}) 

我沒有測試過這是我自己,但希望它可以幫助你。