knockout checkbinding获取last(de)selected元素

问题描述 投票:0回答:1

我显示或隐藏了在我的设置框中选择的div。为此我必须使用敲除检查绑定,但这只返回一个选定元素的数组,但我需要最后更改的元素,然后需要知道它是否被选中。这样可以防止不必要的循环。

index.cshtml:

<input type="checkbox" class="checkbox checkbox-category" name="checkbox" data-bind="attr: {id: 'checkbox' + category.id }, checked: $root.enabledCategories, checkedValue: category" checked />

打字稿classe:

 enabledCategories: KnockoutObservableArray<Category>;

        this.enabledCategories = ko.observableArray([]);

        this.enabledCategories(this.categories());
this.enabledCategories.subscribe(function (val) {

            console.log(val);              

        });
typescript checkbox knockout.js binding
1个回答
0
投票

你似乎做了一点错误... checked绑定应该绑定到一个布尔值,你绑定到ObservableArray

如果您需要知道单击了哪个复选框以及是否选中了它,您可能需要尝试click绑定:

click: $root.CateoryClicked.bind($data)

或类似的东西...

然后在你的视图模型中你有这个:

this.CateoryClicked = function(item) {
    if (item.IsSelected){
       //do what you need to do
    } else {
       item.IsSelected = true;
       //do what you need to do
    }
}

这里的项目应该是绑定到复选框的对象(category)。我不知道你是如何设置的,但我假设你在那个对象上有一个IsSelected属性。

© www.soinside.com 2019 - 2024. All rights reserved.