最近我已經實現了它使用的CSS定製一個複選框指令。當複選框的值被選中時,我需要從作用域中調用一個函數。我有一些與ng-click
工作,但這不是我正在尋找。如何使用複選框在AngularJS指令中調用函數進行檢查?
我看着ng-true-value
,但它需要一個值,而不是一個功能我可以調用。有沒有辦法解決這個問題,只有當複選框處於活動狀態時才能調用該函數?這是該指令的定義:
{
restrict: 'E',
replace: true,
require: ['^ngModel'],
scope:{
isChecked: '=?',
secondFunction: '&'
},
template: function (elem, attr){
var a= '<label class="switch"'+attr.class+'><input type="checkbox" ng-class="{checked: isChecked}"><i></i></label>';
return a;
},
}
你可以看看$ scope.watch $腕錶(watchExpression,聽衆,[objectEquality]); 註冊一個偵聽器回調要執行每當watchExpression變化。 的watchExpression被稱爲在每次調用$消化()和應該返回將要觀看的價值。 (watchExpression在使用相同的輸入執行多次時不應該改變它的值,因爲它可以通過$ digest()多次執行。 –
根據您的需要,您可以使用'ng-change'或一個簡單的'$ watch'來控制你的邏輯,這可能發生在鏈接函數中(因爲你可以訪問示波器),但是我建議只用控制器代替指令。 – ryanyuyu
非常感謝你的回覆和編輯。正如你所建議的$ watch一樣,還有一個問題是有什麼辦法可以做到這一點,並且有任何我使用的函數,所以這個指令可以是通用的嗎?比如ng-click。 – WebDevNewbieGirl