在一条路线上混合不同的模型

时间:2013-03-06 10:38:24

标签: ember.js ember-data

我们将Ember与Ember-Data一起使用,并且通过以下设置难以接受:

有一个父对象(Epic),它有许多子对象(UserStory)。我们使用ember-data相应地对此进行了建模:

App.Epic = DS.Model.extend({
    name: DS.attr("string"),
    description: DS.attr("string"),
    project: DS.belongsTo("App.Project")
});

App.UserStory = DS.Model.extend({
    name: DS.attr("string"),
    description: DS.attr("string"),
    goal: DS.attr("string"),
    benefit: DS.attr("string"),
    epic: DS.belongsTo("App.Epic")
});

我们现在想要实现的是,我们有一个独立表单列表,可以编辑Epic内联所有UserStories。显然,我们只需通过UserStories将所有EpicRESTAdapter一起发送。但我们担心这会导致丑陋的更新方案:更改一个UserStory会触发整个Epic及其所有UserStories的更新。在我们的体系结构中,UserStory是一个独立的实体,应由dedidacted REST服务维护。

作为一个新手,我们想要实现以下几点:

  • 通过ember-data
  • 加载Epic
  • 扩展EpicController以将所有UserStories加载到单独的模型中 - (列表)。
  • 通过专用表单对Epic的更改会触发对Epic Rest Service的更改。
  • 魔术:对单个UserStory表单的更改会触发对User Story Rest Service的单独更改。

如何实现魔力?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

这有点令人尴尬,但我想要的是默认情况下ember-data的表现方式。我需要做的就是让Epic REST-Service提供UserStory ID而不是内联对象。 Ember将让所有的孩子一次性 - URL设置有点难看但有效 - 并且将使用UserStory休息服务来做放置。

Ember有着陡峭但令人满意的学习曲线。

感谢您的反馈。

的Stefan