我在ng-checked上调用了一个函数,通过该函数决定是否选中复选框。但是该功能不会在页面加载时被调用。
html -
<label>
<input type="checkbox" name="status1" id="status1" ng-click="vm.updateStatus('processing')" ng-checked="vm.isSelectedStatus('processing')"> In progress
</label>
JS(控制器) -
var vm = this;
vm.isSelectedStatus = isSelectedStatus;
vm.tasksStatus = ["processing", "finished", "failed"];
function isSelectedStatus(status) {
return vm.tasksStatus.indexOf(status) > -1;
}
function updateStatus(status) {
var index;
index = vm.tasksStatus.indexOf(status);
if(index === -1) {
vm.tasksStatus.push(status);
} else {
vm.tasksStatus.splice(index, 1)
}
}
答案 0 :(得分:0)
我可以看到代码正常工作..
您几乎发布了完整的代码,为什么不做一些额外的努力才能使其成为可运行的代码段?然后你可以知道这部分代码没有问题。
angular.module('test', []).controller('Test', Test);
function Test() {
var vm = this;
vm.isSelectedStatus = isSelectedStatus;
vm.updateStatus = updateStatus;
vm.tasksStatus = ["processing", "finished", "failed"];
function isSelectedStatus(status) {
return vm.tasksStatus.indexOf(status) > -1;
}
function updateStatus(status) {
var index;
index = vm.tasksStatus.indexOf(status);
if (index === -1) {
vm.tasksStatus.push(status);
} else {
vm.tasksStatus.splice(index, 1)
}
}
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<div ng-app='test' ng-controller='Test as vm'>
<label>
<input type="checkbox" name="status1" id="status1" ng-click="vm.updateStatus('processing')" ng-checked="vm.isSelectedStatus('processing')"> In progress
</label>
<div>{{vm.tasksStatus}}</div>
</div>
&#13;