首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用knockoutjs +映射插件(+解决方案)更新数据

使用knockoutjs +映射插件(+解决方案)更新数据
EN

Stack Overflow用户
提问于 2012-10-16 15:07:44
回答 1查看 495关注 0票数 1

我正在尝试使用映射插件插入和更新视图模型中的数据。

初始数据类似于(数字映射到"id“字段,文本映射到”名称“字段):

  • 1 1
    • 2双
      • 3 3
      • 4 4

代码语言:javascript
复制
- 5 five  
    - 6 six
    - 7 seven

  • 8 8
    • 9 9
      • 十十
      • 11 11

代码语言:javascript
复制
- 12 twelve  
    - 13 thirteen
    - 14 fourteen

  • 十五

我得到的是

  • 1 oneMOD
    • 2双
      • 3 3
      • 4 4

  • 16 16

我想得到的是:

  • 1 oneMOD
    • 2双
      • 3 3
      • 4 4

  • 8 8
    • 9 9
      • 十十
      • 11 11

代码语言:javascript
复制
- 12 twelve  
    - 13 thirteen
    - 14 fourteen

  • 十五
  • 16 16

换言之:

  • 字段"name“中元素1的更新,从"one”到"oneMOD“(因为字段id被映射为键)
  • 5和它的儿子删除(或未被触及)
  • 8和15未触及
  • 16加。

看起来,ko.mapping.fromJS取代了新的数据而不是更新它们。

我肯定漏掉了什么。

您可以在这里找到代码:http://jsbin.com/uwihoz/2/edit

提亚

詹尼

编辑

好的,我误解了使用ko.mapping.fromJS进行“更新”的目的。

如果要更新模型,则必须发送包含更新的完整原始数据集。

如果您想要部分更新,您必须强制执行。

我要测试KnockoutJS-映射-updateData

这个(knockoutjs-using-updatefromjs-replacing-values-when-it-should-be-adding) 帖子证实了我的怀疑。

我希望这会有所帮助。

再见,

詹尼

EN

回答 1

Stack Overflow用户

发布于 2012-10-17 10:51:34

在您最初的问题中,ko.mapping通过创建一个新的视图模型来工作。因此,当您第二次这样映射时,您将替换以前的视图模型。更新基本上是一样的。

您要求映射所做的是了解您的数据,并自动更新现有记录并添加新记录。没那么聪明。您必须编写读取更新结果的代码,并在原始视图模型中更新/添加正确的记录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12917771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档