来源在这里
http://jsfiddle.net/M8KFd/302/
如果你按动物的名字 - 一切都很好。但是,如果您按下复选框,则会选择动物,但不会选中 checkbos。有任何想法吗?
我想对我所有的动物都没有财产 .isSelected()
问问题
328 次
2 回答
1
我认为这与事件的顺序有关。当您选中复选框时,检查的评估就完成了;当时该项目不在 selectedItems 中。下次评估完成时,它仍然可以解释延迟。
我分叉了你的小提琴以使你的示例工作(全选除外)
于 2012-08-27T13:36:57.090 回答
1
这是您的小提琴的修改版本。
主要变化如下:
- 复选框使用“名称”属性进行分组。我给了“动物”的名字,但与模型无关。
- 动物数组属于模型
- 选中的属性是这样绑定的
checked: $parent.selectedAnimals
。selectedAnimals是一组动物 ID。Knockout.js 保持跟踪。 - 每个输入的新绑定:
value: id, attr: {id: id}
. 一旦输入的值与 selectedAnimals 数组中动物的 id 相同,Knockout.js 就知道如何通过 id 修改该数组。 - selectAll函数将每个动物的 id 从动物数组复制到 selectedAnimals 数组。Knockout.js 再次更新了 UI。
还有一些标签
于 2012-08-27T19:20:03.057 回答