我在页面上呈现了多个复选框,如果我的复选框已经加载检查,我想触发ng-change()
。
<input type="checkbox" ng-true-value="true"
ng-false-value="false"
ng-change="CustomCheckSelect(someValue)" ng-model="model.defaultCheckBox"/>
使用ng-init
导致我出现问题并在控制台中抛出错误,因为其中一些未被检查。
答案 0 :(得分:5)
试试这个。用ng-if写一个<div></div>
并检查&#34; model.defaultCheckBox &#34;是真还是假。从该div调用ng-init中的方法。象 -
<div
ng-if="model.defaultCheckBox" ng-init="CustomCheckSelect(somevalue)">
</div>
答案 1 :(得分:2)
来自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);
}
})