javascript - 在 ember.js 中复制嵌套模型(成功保存后)

标签 javascript ember.js model ember-data

我有模型事件,其中包含嵌套的模型故事和域。

App.Campaign = DS.Model.extend({
    name: DS.attr('string'),
    stories: DS.hasMany('story'),
    domains: DS.hasMany('domain')
});

App.Domain = DS.Model.extend({
    domain: DS.attr('string'),
    campaigns: DS.hasMany('campaign')
});

App.Story = DS.Model.extend({
    title: DS.attr('string'),
    campaign: DS.belongsTo('campaign')
});

在 Controller 中,我以这种方式创建 currentCampaign:

this.currentCampaign = this.store.createRecord('campaign');

并以这种方式添加故事和域:

var campaignDomains = this.get('currentCampaign.domains');
var domainObj = this.store.createRecord('domain', {
    "domain": domain
});
campaignDomains.addObject(domainObj);

var campaignStories = this.get('currentCampaign.stories');
var story = this.store.createRecord('story', {
    "id": this.generateUUID(), // Generate uniqid
    "title": storyTitle,
});
campaignStories.pushObject(story);

保存后(在调用 transitionTo 方法之前,我在模板上看到重复的域和故事)。当我进入页面编辑事件时,我还看到了重复的域和故事。刷新页面后 - 我看到正常数据(通过刷新,此数据正在从服务器获取)。

POST 请求 JSON(域 ID 在服务器端生成,故事 ID 在客户端生成):

{"campaign":
    {
    "id":"f0777f1a17deadcb",
    "name":"name of campaign",
    "stories":[{
        "id":"488b6b6bf4c988f0",
        "title":"story",
        "campaign":"f0777f1a17deadcb"
    }],
    "domains":[{
        "domain":"domain.com",
        "campaigns":["f0777f1a17deadcb"]}
    }]
}

响应 POST 请求(通过添加新事件):

{"campaign":
    {
    "id":"f0777f1a17deadcb",
    "name":"name of campaign",
    "stories":[{
         "id":"488b6b6bf4c988f0",
         "title":"story",
         "campaign":"f0777f1a17deadcb"
    }],
    "domains":[{
         "id":"54",
         "domain":"domain.com",
         "campaigns":["f0777f1a17deadcb"]}
    }]
}

序列化文件

App.CampaignSerializer = DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
    attrs: {
        domains: {embedded: 'always'},
        stories: {embedded: 'always'}
    }
});

Ember 1.8.1 Ember 数据 1.0.0-beta.14.1

最佳答案

我认为您遇到了一个问题 reported .

我不得不降级到 ember-data 1.0.0-beta.12

关于javascript - 在 ember.js 中复制嵌套模型(成功保存后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27903730/

相关文章:

javascript - 使用 onmouseout javascript 时如何将背景设置为旧颜色

ember.js - 在另一个容器 View 内外交换容器 View 会导致 View 被破坏

c# - 如何只验证 ASP .NET MVC 中模型的一部分?

database - 在 codeigniter 中为我的模型更改数据库时遇到问题

javascript - 如何使用 Jasmine 2.0 测试 ES6 Promise?

javascript - 将日期字符串转换为另一种字符串格式

javascript - 验证 ember.js 中动态段的格式

django:管理站点中模型的自定义名称

javascript - 在 td 元素中查找文本的功能不起作用

Ember.js:非标准路由,需要请输入