在Ember-data 1.13.8中的一个JSON请求中使用Model加载Meta详细信息

时间:2015-08-22 20:04:22

标签: ember.js ember-data

我有以下路线:

this.resource('users', { path: '/'});

以下两个ember模型:用户 meta

当我转到上面的路线时,使用覆盖模型函数加载用户数组:

model: function() {
        return this.store.findAll('user');
    },

服务器返回以下JSON:

{
  "users" : [ {
    "id" : "ab650b0d-bea7-4619-a3fd-95f4c7bfd722",
    "firstName" : "Shivam",
    "lastName" : "Sinha",
    "username" : "shiv",
    "gender" : "M",
    "contactdetails" : [ {
      "id" : "fb5c9345-037e-4a57-9801-2b260b9b15fa",
      "name" : "Shiv",
      "type" : "PRIMARY_EMAIL",
      "value" : "ssdfsdfa@outlook.com",
      "userExist" : true,
      "isVerified" : false
    } ]
  } ],
  "meta" : {
    "sort" : "id: ASC",
    "size" : 20,
    "number" : 0,
    "totalPages" : 1,
    "numberOfElements" : 1,
    "totalElements" : 1,
    "firstPage" : true,
    "lastPage" : true
  }
}

用户模型被正确反序列化并作为余烬模型加载。然而,元模型被忽略。我怎样才能将元模型正确加载为ember模型而不必实际单独请求?

2 个答案:

答案 0 :(得分:1)

从您的示例看,您似乎正在尝试解析元数据,而不是一次实际加载两个模型。

请查看此处了解有关如何处理元数据的信息: http://guides.emberjs.com/v1.13.0/models/handling-metadata/

根据您的示例,您可能希望使用以下内容:

var meta = this.store.metadataFor("user");

答案 1 :(得分:0)

Credit @tbjers

有两种方法:

  1. 您可以尝试幻灯片加载:http://guides.emberjs.com/v2.0.0/models/the-rest-adapter/#toc_sideloaded-relationships

  2. 然而,这是元细节的最佳方法:

  3. http://guides.emberjs.com/v1.13.0/models/handling-metadata/

    OR与Ember 2:

    http://guides.emberjs.com/v2.0.0/models/handling-metadata/

    由于我使用的是ember 1.13.0,我使用了以下方法:

    $('#result_table').html(result);