我一直试图让一个下拉选择在一个页面上使用敲除绑定工作。当页面上只有一个并且我没有在knockout绑定插件中使用映射选项时,我设法让下拉和表正常工作。
但是当我使用映射选项时,下拉列表或表格工作不正确。我无法在网上找到任何有助于解决问题的方法。
我在这里创建了一个jsFiddle以获取更多信息:
html如下:
BLE
和js是:
<table class="table table-striped table-bordered table-curved">
<tr>
<th>Name</th>
<th>Team</th>
</tr>
<!-- ko foreach: History -->
<tr>
<td data-bind="text: Name"></td>
<td data-bind="text: Team1"></td>
</tr>
<!-- /ko -->
</table>
http://jsfiddle.net/372221/vg6kf3pw/14/
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:4)
你的小提琴中有很多错误/错误。首先,这是一个working one。
这是你的错误。
Knockout 3.4
。之后,您不需要直接引用js文件。此外,您根本没有引用映射插件。最后,你不需要jQuery文档就绪包装,特别是当jQuery甚至没有被引用时。GetData
。GetData
方法没有返回类似承诺的对象,因此没有done
回调。在我的版本中,我使用了一些嘲弄。ko
无法处理虚拟绑定节点,因此我需要在tr
标记周围添加正确的th
包裹。Team
正确而不是Team1
,而optionsText
正确的获取者应该返回SafeName
(我猜)。<强>更新强>
你的更新小提琴有这些错误。
GetHistory
,然后致电ko.applyBindings
。parent.DelayHistory
传递给ko.mapping.fromJS
的构造函数作为第三个参数,因此实际上插件将属性化为observableArray
而不是实际项。事实上,在这种情况下,您甚至不需要parent
引用(除非您的实际代码中有其他原因)。