首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Ember数据中保存关联模型上的更改

如何在Ember数据中保存关联模型上的更改
EN

Stack Overflow用户
提问于 2013-12-17 17:12:56
回答 1查看 1.1K关注 0票数 2

我正在运行Ember Data 1.0.0和Ember 1.3.0。

我有这样的数据:

代码语言:javascript
复制
{
  "product": {
    "id": 185588,
    "name": "USB MIDI Adapter",
    "images":["imageid1", "imageid2"....]
  },
  "images": [
    {
      "id": "imageid1",
      "url": "google.com"
    },
    {
      "id": "imageid2",
      "url": "google.com2"
    }
  ]
}

这些模型是:

代码语言:javascript
复制
App.Image = DS.Model.extend({
    url: DS.attr('string')
});

App.Product = DS.Model.extend({
    name: DS.attr('string'),
    images: DS.hasMany('Image') 
});

在我的模板中,我有一个编辑表单来更改相关图像上的url:

代码语言:javascript
复制
  <form {{action save on="submit"}}>
   {{input type="text" value=name}}

    {{#each images}}
    * {{input type="text" value=url}}<br>
    {{/each}}

   <button type="submit">Save</button>
   </form>

保存操作是:

代码语言:javascript
复制
save: function() {
  var product = this.modelFor('productEdit');
  product.save();
  this.transitionTo('product', product);
}

问题是,保存操作只保存产品(PUT产品),而不保存对图像urls所做的更改。模型绑定工作得很好,当我更改图片上的url时,gui会按它应该更新的方式更新,但是PUT不会按它应该发送的方式发送。

如何保存图像更改?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-17 17:19:11

您需要调用每个记录的保存,调用记录数组上的保存(这将迭代和保存),或者您可以重写序列化程序(serializeIntoHash)将图像注入产品的保存。

代码语言:javascript
复制
records.forEach(function(record){
   if(record.get('isDirty')) record.save();
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20640505

复制
相关文章

相似问题

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