0

这是一个省略了一些东西的小提琴:http: //jsfiddle.net/YwTBk/

基本上,获得下图所需的只是编辑第一行。出于某种原因,Knockout 正在用相同的值填充该列下的所有行。它发生在amount, nrAmount,当然还有计算total列。其他列都没有这个问题。

有趣的是,将绑定从 更改amount$data.amount具有使计算列nrAmount不再工作的效果,但不会导致所有行都被填充。

用相同的值填充的列

为什么会发生这种情况,我该如何解决?

4

1 回答 1

0

我猜这是一个“有效”的更新小提琴 - http://jsfiddle.net/YwTBk/2/。您对问题的描述与您引用的小提琴不匹配,因此很难确定。

我修复的更大问题如下:

  1. 正如 Niko 所提到的,您需要var self = this;在视图模型的顶部。
  2. 我将 addBlankRecord 移到您的视图模型中,以便selfaddBlankRecord 方法中的引用起作用。
  3. 我更新了 populateBlankRecords 方法,以便它引用 ViewModel 上的 addBlankRecord
  4. 对于您的绑定,我将类别和 removeRecord 的绑定更新为 $parent.categories 和 $parent.removeRecord,因为在 Record 视图模型中都找不到这些绑定。

我猜还有几个较小的问题是由于从您的代码中删除了一些东西。其中一些被其他评论引用。

  • removeRecord、GetDepartments 和 GetCategories 方法不存在
  • 没有表格 HTML 标记
  • 没有引用 jQuery 或 KnockoutJS

这能解决您的问题吗?如果没有,如果您能提供一个演示问题的小提琴,那将非常有帮助。

于 2012-12-20T19:44:27.727 回答