3
這似乎很簡單,我在某種程度上工作,但是我的解決方案存在一些問題。AngularJs:來自指令屬性的呼叫功能
這種情況是我想將一個函數(toggleValue()
)傳遞給一個指令,然後通過指令模板中的ngChange調用該函數。基本設置是:
// html
<div class="my-directive" ng-model="my_model" ng-change="toggleValue()"></div>
// angular directive
myApp.directive('myDirective', function() {
return {
scope: {
restrict: 'C',
model: '=ngModel',
action: '=ngChange'
},
template: '<input type="checkbox" ng-model="model" ng-change="action">'
}
}
這有點過分簡化了,因爲它超出了上下文範圍,但它證明了我正在嘗試做什麼。這也適用。問題在於它被調用了幾次 - 甚至在它被明確調用之前。這似乎是由於對動作的雙向綁定。據我所知,&應該用於隔離方法,但當我將操作改爲'&ngChange'
時,函數toggleValue()根本不會被調用。
我想結合的解決方案在Call a controller function from a directive without isolated scope in AngularJS,但沒有取得任何結果。使用$apply()
給了我一個消化錯誤,並且使用$eval()
沒有響應。
link: function (scope, element, attrs) {
scope.$eval(attrs.action);
}
我知道它必須是簡單的東西。沒想到它會像添加括號一樣簡單。謝謝。 – iamsar