1

我正在构建一个 Ember.js 应用程序,它允许 2 个实体之间的多对多关系,例如 Post 和 Tag:

App.Post = DS.Model.extend({
    title: DS.attr("string"),
    body: DS.attr("string"),
    tags: DS.hasMany("App.Tag")
});

App.Tag = DS.Model.extend({
    name: DS.attr("string"),
    posts: DS.hasMany("App.Post")
});

在持久化新记录时,我很难让 Ember 序列化多对多关系。这就是我目前的做法:

// Create the post
post = store.createRecord(App.Post, {title: "Example", body: "Lorem ipsum..."});

// Create the tag
tag = store.createRecord(App.Tag, {name: "my-tag"});

// Add the tag to the post
post.get("tags").addObject(tag);

// Add the post to the tag
tag.get("posts").addObject(post);

// Save
store.commit();

新记录显示在 DOM 中,并发布到我的 API,但是序列化不包括它们之间的关系。例如,帖子的序列化如下所示:

title=Example&body=Lorem+ipsum...

我希望它还包括与之关联的标签。

我哪里错了?

4

2 回答 2

1

默认情况下,如果您将关系配置为嵌入到序列化程序中,hasMany则关系只会序列化为 JSON 中的数组。_ids请查看此答案以获取更多详细信息。

于 2013-03-01T17:01:45.457 回答
0

您可以通过覆盖序列化程序来使用 Ember Data 1.0.0:http: //mozmonkey.com/2013/12/serializing-embedded-relationships-ember-data-beta/

于 2013-12-26T19:52:35.657 回答