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-Kendo dropdownlist Ajax observableArray 获取选中项名称
获取与 Knockout 绑定的 observable 元素?
Knockout源代码精析-怎样解析demo元素,获取到bindings?