簡體   English   中英

觸發負載ng變化

[英]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處理,比如defaultCheckboxsecondaryCheckbox

為避免重復,我將這些值存儲在數組中,然后按條件進行迭代並調用函數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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM