微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Knockout.js“全选”复选框

我刚刚开始玩Knockout.js,似乎很酷.我有一个网格此网格有一列,顶部有一个复选框以“选择所有”的元素,以及取消选择.标准网格行为.

这是我的代码到目前为止

使用Javascript

// Define a "banner" class
function banner(inventory,name,artType,artSize) {
    return {
        isSelected : ko.observable(false),inventory : ko.observable(inventory),name : ko.observable(name),artType : ko.observable(artType),artSize : ko.observable(artSize)

    };
}

var viewmodel = {
    banners : ko.observableArray([new banner("network","Banner #1"),new banner("oo","Banner #2")]),addBanner : function() {
        this.banners.push(new banner("network","Banner"));
    },selectAll : function() {
        this.banners.isSelected(true)
    }       

};

ko.applyBindings(viewmodel);

我将“selectAll”事件绑定到如下复选框:

<th><input data-bind="click: selectAll" type="checkBox" /></th>

而对于我在列表中的每个单独的横幅,他们的复选框如下所示:

<td><input data-bind="checked: isSelected" type="checkBox" /></td>

由于某些原因,我的selectAll函数无法正常工作.我对这个OO JavaScript编程范例来说是相当新鲜的,所以我可能会在这里做出明显的错误.

谢谢!

解决方法

在这种情况下,banner是一个数组,因此您需要访问数组中的每个项目并更新单个isSelected属性.

就像是:

ko.utils.arrayForEach(this.banners(),function(banner) {
   banner.isSelected(true);
});

原文地址:https://www.jb51.cc/js/154629.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐