我在页面上呈现了多个复选框,如果我的复选框已在加载时被选中,我想触发ng-change()

<input type="checkbox" ng-true-value="true"
      ng-false-value="false"
        ng-change="CustomCheckSelect(someValue)" ng-model="model.defaultCheckBox"/>

使用ng-init会导致我出现问题,并在控制台中引发错误,因为其中一些未检查。

最佳答案

从有关ngChange的文档中:



即使您触发ng-change,也可以使用ng-model-options来说:
ng-model-options="{updateOn: 'onload default'}"它不会得到评估,因为您没有更改任何值。

如果您不喜欢ngInit解决方案,则可以尝试在 Controller 中手动调用该函数。

因此,您只有一个$scope.model,其中一些属性是由checkboxes处理的,比如defaultCheckboxsecondaryCheckbox

为避免重复,我将这些值存储在数组中,然后按条件进行迭代并调用函数CustomCheckSelect:

var checkboxes = ['defaultCheckbox', 'secondaryCheckbox'];

angular.forEach(checkboxes, function(val){
    if ($scope.model[val]) {
        $scope.CustomCheckSelect(val);
    }
})

plunker

关于javascript - 触发ng负载变化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35153607/

10-11 13:15