0

这是我之前的问题的延续

您可以看到页面加载时将显示 2 个选定项目,即列表中的两个和三个。现在,当我检查选项 Test1 时,它没有被添加到列表中。简而言之,它不会在列表中添加新选择的项目。我已经完成以下操作以循环选择项目

viewModel.selectedItems = ko.computed(function() {
debugger;
    return ko.utils.arrayMap(viewModel.checkDuplicate(), function(id) {
        return ko.utils.arrayFirst(viewModel.dataOne(), function(item) {
            return item.name1 == id; 
        }); 
    });
});   

我在这里放了小提琴,所以很容易理解。暂时忘记更新按钮。当我选择某个复选框时,它应该只显示在更新按钮下方的列表中选择的那些。请帮忙。

4

1 回答 1

1

现在,当我检查选项 Test1 时,它没有被添加到列表中。简而言之,它没有在列表中添加新选择的项目......

我创建了一个小提琴,其中列表根据复选框的选中/取消选中进行更新。检查这个

工作小提琴

视图模型

function VM() {
    var self = this;   

    self.Checkboxes = ko.observableArray([
        new Checkbox("one", 1, "Test1"),
        new Checkbox("two", 2, "Test2", true),
        new Checkbox("three", 3, "Test3", true)
    ]);

    self.SelectedItems = ko.computed(function(){
        var boxes = [];
        ko.utils.arrayForEach(self.Checkboxes(), function(box){
            if(box.IsSelected()){
              boxes.push(box);
            }
        });
        return boxes;
    });
}

如果有帮助,请告诉我!

更新

工作小提琴

于 2013-04-03T11:19:37.673 回答