淘汰赛:选中所有复选框不起作用

时间:2013-04-19 14:18:11

标签: knockout.js

我们正面临一个特殊问题。我们有一个表,其中每一行都是可选择的并且与knockout绑定,如下所示:

thead
  tr
    th: input(type="checkbox", data-bind="checked: $root.onSelectAll")
    ..
    ..
tbody(data-bind="foreach: items")
  tr
    td
      input(type="checkbox", data-bind="attr: { value: $data.id }, checked: $root.selectedItems")
    ..
    ..

这很好,因为我们选择一个项目,并且它的id属性被添加到selectedItems列表。

我们现在需要为每个页面实现一个select all选项,因为它有分页。我们正在考虑http://jsfiddle.net/rniemeyer/kXYuU/,但无法使其发挥作用,这就是问题所在。我能够自己编写一个解决方案,但它比应该的要复杂得多。使用Knockout它应该更容易和更清洁。

1 个答案:

答案 0 :(得分:0)

首先,我可能错了,但我认为你不能在$root绑定的上下文之外使用foreach。无论您是否可以,您对th $root.onSelectAll - > onSelectAll的绑定不需要它。

其次,$root.selectedItems感觉就像一个observableArray,你不能将observableArray绑定到checked,它必须是一个可观察的。