根据实例的性质,new anObject({id:1})!= new anObject({id:1})。
这导致我遇到关于Knockout的问题:
我有一系列可能的选项(具有不同属性值的模型的所有实例)和另一个持有选择的模型。
从UI角度来看,我有一个简单的<select data-bind="options: [...]
- 绑定,只要我选择一个选项就可以正常工作。
因为我的ViewModel可以存储并稍后在新的applyBinding中调用,所以我遇到的问题是我的数据绑定没有识别我选择的值并因此删除了值。
现在我最简单的解决方案是某种初始化函数,它循环选项并通过id比较选择正确的模型实例。在我拥有正确的实例之后,我可以将它应用于&#34; selectedValue&#34; -property。
我还没有尝试过,但我不知道它是如何运作的。 因为我不认为这是一个奇怪的要求,而且很多人都在使用Knockout - 我希望有更好的方法可以做到这一点吗?
谢谢!
答案 0 :(得分:1)
查看Knockout.js文档中的“optionsValue”:http://knockoutjs.com/documentation/options-binding.html
通常,您只想使用optionsValue作为确保方法 当你更新一组时,KO可以正确地保留选择 可用选项。例如,如果您反复获取列表 “汽车”对象通过Ajax调用并希望确保所选择的汽车 保留,您可能需要将optionsValue设置为“carId”或 每个“汽车”对象具有的唯一标识符,否则KO不会 必须知道以前哪个“汽车”对象对应 哪个新的。