knockout checkbinding获取last(de)selected元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了knockout checkbinding获取last(de)selected元素相关的知识,希望对你有一定的参考价值。

我显示或隐藏了在我的设置框中选择的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);              

        });
答案

你似乎做了一点错误... 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属性。

以上是关于knockout checkbinding获取last(de)selected元素的主要内容,如果未能解决你的问题,请参考以下文章

Knockout.js 获取 location.href 对象的属性

Knockout-Kendo dropdownlist Ajax observableArray 获取选中项名称

获取与 Knockout 绑定的 observable 元素?

Knockout源代码精析-怎样解析demo元素,获取到bindings?

Knockout Kendo 下拉列表获取所选项目的文本

Knockout基本绑定数据