[英]Trigger ng-change on load
我在頁面上呈現了多個復選框,如果我的復選框已在加載時被選中,我想觸發ng-change()
。
<input type="checkbox" ng-true-value="true"
ng-false-value="false"
ng-change="CustomCheckSelect(someValue)" ng-model="model.defaultCheckBox"/>
使用ng-init
會給我造成問題,並在控制台中引發錯誤,因為其中一些未檢查。
嘗試這個。 用ng-if編寫一個<div></div>
並檢查“ model.defaultCheckBox ”是true還是false。 從該div中調用ng-init中的方法。 喜歡-
<div
ng-if="model.defaultCheckBox" ng-init="CustomCheckSelect(somevalue)">
</div>
從有關ngChange的文檔中:
僅當輸入值的更改導致將新值提交給模型時才評估ngChange表達式。
即使您觸發ng-change
,也可以使用ng-model-options
:
ng-model-options="{updateOn: 'onload default'}"
它不會得到評估,因為您沒有更改任何值。
如果您不喜歡ngInit
解決方案,則可以嘗試在控制器中手動調用該功能。
因此,您擁有一個$scope.model
,其中一些屬性由checkboxes
處理,比如defaultCheckbox
和secondaryCheckbox
。
為避免重復,我將這些值存儲在數組中,然后按條件進行迭代並調用函數CustomCheckSelect
:
var checkboxes = ['defaultCheckbox', 'secondaryCheckbox'];
angular.forEach(checkboxes, function(val){
if ($scope.model[val]) {
$scope.CustomCheckSelect(val);
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.