javascript - AngularJS ng-change 不适用于选中的复选框

标签 javascript angularjs checkbox

我有一个带有复选框的待办事项列表。选中的框标记为“完成”待办事项,未选中的框标记为“撤消”。当我选中然后取消选中最初未选中的框时,一切工作正常。相应地,选中时它被标记为“完成”,当我取消选中它时,它被标记为“撤消”。

但是,当我取消选中最初选中的复选框时,问题就出现了。什么都没发生。它应该被标记为“撤消”,因为我未选中它。之后,我会重新检查该框,ng-change 会触发,但它不会将待办事项标记为“完成”,而是“撤消”,而此时选中的框应该是“完成”待办事项。

HTML:

<input icheck type="checkbox"
       ng-model="toDo.value.members.status.value"
       ng-change="vm.markAs(toDo.value.instanceId)"
       ng-click="vm.markAs(toDo.value.instanceId)"
       ng-init="toDo.value.members.status.value === 'Undone'"
       ng-checked="toDo.value.members.status.value === 'Done'">
<span class="m-l-xs">{{ toDo.value.title }}</span>

Controller :

function markAs(id) {    
    todolistService.getToDo(id).then(function (response) {
        vm.toDoStatus = response.data.members.status.value;
        if (vm.toDoStatus == 'Undone') {
            console.log('Done');
            todolistService.markAsDone(id).then(function () {
                notifyService.success($translate.instant('MSG_TODO_MARK_AS_DONE_SUCCESS'));
            }, function (error) {
                notifyService.showError(error);
            });
        } else if (vm.toDoStatus == 'Done') {
            console.log('Undone');
            todolistService.markAsUndone(id).then(function () {
                notifyService.success($translate.instant('MSG_TODO_MARK_AS_UNDONE_SUCCESS'));
            }, function (error) {
                notifyService.showError(error);
            });
        }
    }, function (error) {
        notifyService.showError(error);
    });
}

希望你能理解这个问题。

最佳答案

尝试改变:

function markAs(id) {  

致:

vm.markAs = function(id) {

关于javascript - AngularJS ng-change 不适用于选中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37316041/

相关文章:

javascript - Backbone JS : can one view trigger updates in other views?

javascript - 单击 Angular ui 选项卡会多次触发事件

angularjs - 单个数组 JSON 对象不会打印 (Ionic 2)

android - 单击按钮时如何在android中获取复选框,带有ListView值的EditText?

javascript - 将JavaScript生成的二进制文件保存到iPad

javascript - 控制 DOM 中每个 'src' 属性的变化

java - 链接到动态网页中的图像

javascript - 过滤掉选择选项后,Angular 模型无法更新

javascript - jquery 复选框监听器 for 循环

javascript - jQuery - 即使单击列表也会触发,但不会触发嵌入其中的复选框