【发布时间】:2015-01-13 04:48:52
【问题描述】:
我正在使用 KnockoutJS 来管理我的 Web 前端。我正在编写一个 CRUD/Admin 站点,但我遇到了 selectedOptions 绑定问题。
案例:
视图模型具有
form.products.all和form.products.selected可观察对象。这两个都是ko.mapping生成的。-
HTML 表单具有表单的多选:
<select required="" multiple="" data-bind="options: products.all, optionsText: function (item) { return item.value.name.unName(); }, selectedOptions: products.selected" class="form-control"> HTML 表单正确显示所有选项。
HTML 表单不在加载时显示选定的选项。特别是,如果我检查 viewModel 对象,我可以看到正确的对象在加载时被加载到
products.selected数组中。但是多选不会自动选择它们。如果我选择表单中的对象,然后检查
products.selected可观察对象,我确实会看到数组中的对象。如果我发布表单,正确的对象最终会出现在数据库中,然后在下一页加载时出现在 viewModel 对象中(因此循环中唯一缺少的部分实际上是基于
products.selected中的内容。
我做错了什么?我看到了相互矛盾的建议,其中一些已经过时,所以我不确定如何继续。
【问题讨论】:
-
文档说“同样,假设它是您的视图模型上的一个可观察数组,那么每当您向该数组添加或删除(例如,通过推送或拼接)项目时,UI 中的相应项目将变为选择或取消选择。这是一种 2 向绑定。"
-
你能提供一个小提琴之类的吗?
-
@nomen 你没理我的评论。
标签: javascript html knockout.js