循环中的挖空下划线循环会失去可观察的功能
knockout underscore loop in loop loses observable functionality
我正在尝试构建带有淘汰和下划线的表格.js .我遇到过这种情况,当我需要将一个循环放在另一个循环中时,例如:
<tbody >
<% _.each(ShippingCharge.Lines(), function(line) { %>
<tr>
<td><input type="text" class="form-control" data-bind="value : line.ShippingZone.Name"/></td>
<% _.each(line.Charges(), function(data) { %>
<td><input type="text" class="form-control" data-bind="value : data"/></td>
<% }) %>
</tr>
<% }) %>
</tbody>
问题是当line.Charges()
值被修改时,observableArray
不会更新。你可以在jsFiddle上检查它。请注意,只有嵌套循环不会更新observaleArray
,您可以更改Zones
列值并查看它们是否更改observaleArray
这是您正在努力的映射插件。映射插件可以发挥魔力,但有时 ViewModel 不正确或映射插件无法处理
。首先,这句话很重要:http://knockoutjs.com/documentation/observableArrays.html
关键点:observableArray 跟踪数组中的对象,而不是这些对象的状态
如果查看映射操作的结果,则属性
vm.ShippingCharge.Lines()[0].Charges
是一个可观察的数组。
您的要求是能够更改单个费用(跟踪费用数组中每个对象的状态)。因此,它应该是一个可观察量的数组,或者当数组中的值数量是动态的时,它应该是一个可观察量的可观察数组。
我不确定映射插件是否可以做到这一点。
无论如何,我认为您的 ViewModel 对于映射插件来说很复杂,所以请留下魔力,并手动编写视图模型。
更新(工作)小提琴:http://jsfiddle.net/martijn/NW5Vn/145/
相关文章:
- 按键时循环功能
- 具有闭合功能的 For 循环保存状态
- 如何使用上一个/下一个功能循环数组中的图像
- Javascript循环字幕功能
- 有人可以向我解释javascript getCookie()中while循环的功能吗?
- 如何使用超时功能进行无限循环
- 循环中的挖空下划线循环会失去可观察的功能
- 悬停功能在插件中无限循环
- 如何在循环中创建的多个按钮上使用相同的 jquery 功能
- 我在循环中遇到闭包问题,但我仍然使用单独的功能
- JavaScript while 循环不执行内部功能
- 循环通过单选按钮,功能不起作用
- 如何在 for 循环中使用 jQuery 切换功能
- 功率功能.为什么在循环开始时将结果设置为1
- HTML5视频循环src对端播放功能的更改不起作用
- 在循环功能后的最后一个列表项上停止
- ES6对象.forOwn循环遍历对象键的功能
- 在嵌套循环Javascript中播放功能
- 可以't停止循环功能
- 循环功能时延迟