我正在尝试使用映射插件在knockoutjs viewmodel中插入和更新数据 初始数据看起来像(数字映射在“id”字段和“name”字段中的文本):
我得到的是
我想得到的是:
:
看起来ko.mapping.fromJS会替换新数据而不是更新它们 我肯定错过了一些东西。
您可以在此处找到代码:http://jsbin.com/uwihoz/2/edit
TIA
詹尼
修改:
好吧,我误解了使用ko.mapping.fromJS打算“更新”的内容 如果要更新模型,则必须发送包含更新的完整原始数据集 如果您想进行部分更新,则必须执行此操作 我要去测试KnockoutJS-Mapping-updateData。
这post(knockoutjs-using-updatefromjs-replacement-values-when-it-should-to-adding)让我对我的怀疑有了确认。
我希望这会有所帮助。
再见,
詹尼
答案 0 :(得分:0)
在您的原始问题中,ko.mapping的工作原理是创建一个新的视图模型。因此,当您第二次进行映射时,您将替换以前的视图模型。更新基本上是一样的。
您要求映射做的是了解您的数据并自动更新现有记录并添加新记录。这不是那么聪明。您将不得不编写读取更新结果的代码,并在原始视图模型中更新/添加正确的记录。