1

来源在这里
http://jsfiddle.net/M8KFd/302/
如果你按动物的名字 - 一切都很好。但是,如果您按下复选框,则会选择动物,但不会选中 checkbos。有任何想法吗?
我想对我所有的动物都没有财产 .isSelected()

4

2 回答 2

1

我认为这与事件的顺序有关。当您选中复选框时,检查的评估就完成了;当时该项目不在 selectedItems 中。下次评估完成时,它仍然可以解释延迟。

我分叉了你的小提琴以使你的示例工作(全选除外)

http://jsfiddle.net/dyKvQ/

于 2012-08-27T13:36:57.090 回答
1

是您的小提琴的修改版本。

主要变化如下:

  1. 复选框使用“名称”属性进行分组。我给了“动物”的名字,但与模型无关。
  2. 动物数组属于模型
  3. 选中的属性是这样绑定的checked: $parent.selectedAnimalsselectedAnimals是一组动物 ID。Knockout.js 保持跟踪。
  4. 每个输入的新绑定:value: id, attr: {id: id}. 一旦输入的值与 selectedAnimals 数组中动物的 id 相同,Knockout.js 就知道如何通过 id 修改该数组。
  5. selectAll函数将每个动物的 id 从动物数组复制到 selectedAnimals 数组。Knockout.js 再次更新了 UI。

还有一些标签

于 2012-08-27T19:20:03.057 回答