【发布时间】:2012-12-20 18:33:29
【问题描述】:
这里省略了一些东西:http://jsfiddle.net/YwTBk/
基本上,获得下图所需的只是编辑第一行。出于某种原因,Knockout 正在用相同的值填充该列下的所有行。它发生在amount、nrAmount,当然还有计算出的total 列。其他列都没有这个问题。
有趣的是,将绑定从 amount 更改为 $data.amount 会导致计算列 nrAmount 不再起作用,但不会导致所有行都被填充。
为什么会发生这种情况,我该如何解决?
【问题讨论】:
-
绑定语法对我来说看起来不错。问题似乎出在其他地方。由于您的小提琴不完整,它可能在缺少的组件中。可能是另一个事件或订阅导致了更新?
-
@adaptive 我真正省略的唯一事情是填充类别和部门可观察数组。我在
<table>中也有<tbody>和<thead>定义。 HTML 中有关“金额”一词的所有 JavaScript 代码和绑定都在其中。我对这个困惑了很长时间。我想我会为它写一个测试用例。 -
你的小提琴根本不起作用,你甚至没有包括淘汰赛。
-
至少有一个主要问题:您总是以
self = this;开头的函数定义。如果您不使用var self = this;,则此变量self将是全局变量,因此在下次调用这些函数时会覆盖。 -
@Niko 差不多了。这只是调整绑定的问题。这就是我没有完全理解代码示例的结果!如果您想复制/粘贴它作为答案,我会将其标记为解决方案。
标签: javascript jquery data-binding knockout.js