繁体   English   中英

获取相关模型数据ember.js

[英]Get related model data ember.js

构建我的静态API时,我基本上遵循了Ember的RESTAdapter约定。

我有一个模型post和一个模型tags ,多对多关系。 由于我将只查找与帖子相关的标签,因此我没有定义相反的标签。

因此,我在post模型tags: hasMany('tag')拥有了这个tags: hasMany('tag') ,在restful api中它返回了tags: ["1", "2", "3"]等,就像它应该那样。

所以现在我想知道如何在posts/1网址上获取这些标签。 当我在商店中查找时,没有任何标签被检索。 如何访问标签数据及其属性?

App.Tag = DS.Model.extend({
    name: attr()
});

App.Post = DS.Model.extend({
    active: attr(),
    name: attr(),
    organization: attr(),
    user_id: attr(),
    submitted_ts: attr(),
    status: attr(),
    tags: hasMany('tag')
});

{
  "post": {
    "0": {
      "id": "1",
      "active": "A",
      "name": "This is a test title",
      "organization": "Stryker",
      "user_id": "0",
      "submitted_ts": "1402664380",
      "status": "finalized"
    },
    "tags": [
      "30",
      "1",
      "14"
    ]
  },
  "tags": [
    {
      "id": "30",
      "type": "asdf",
      "name": "KNEE",
      "pivot": {
        "case_id": "1",
        "id": "30"
      }
    },
    {
      "id": "1",
      "type": "therapy",
      "name": "more things",
      "pivot": {
        "case_id": "1",
        "id": "1"
      }
    },
    {
      "id": "14",
      "type": "therapy",
      "name": "asdfasdf",
      "pivot": {
        "case_id": "1",
        "id": "14"
      }
    }
  ]
}

序列化程序与此调用无关

App.SpecialtySerializer = DS.JSONSerializer.extend({
    primaryKey: 'specialty_id'
});


App.ApplicationAdapter = DS.RESTAdapter.extend({
    namespace: 'api/v1',
    headers: function() {
        return {
            authToken: this.get('auth.authToken')
        };
    }.property("auth.authToken")
});

当您有这样的标签时,您是说标签信息随着帖子的请求而下降。 如果不正确,则需要将标签标记为异步

tags: hasMany('tag')

如果它包含在发帖请求中,则只需执行post.get('tags')访问标签

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM