Ember数据和映射JSON对象

Dre*_*son 6 json ember.js ember-data

我已经真正搜索过了,我还没有找到一个使用序列化程序从不同格式的JSON响应中获取对象的好例子.我没有更改JSON响应格式的原因在http://flask.pocoo.org/docs/security/#json-security中列出.

我对javascript还不是很好,所以我很难理解serialize_json.js中的钩子,或者我应该使用map(我只是不知道).所以这是我对许多对象的JSON响应的一个例子:

{
  "total_pages": 1, 
  "objects": [
     {
      "is_completed": true, 
      "id": 1, 
      "title": "I need to eat"
    }, 
    {
      "is_completed": false, 
      "id": 2, 
      "title": "Hey does this work"
    }, 
    {
      "is_completed": false, 
      "id": 3, 
      "title": "Go to sleep"
    }, 
  ], 
  "num_results": 3, 
  "page": 1
}
Run Code Online (Sandbox Code Playgroud)

当ember-data尝试使用它时,我收到以下错误:

DEBUG: -------------------------------
DEBUG: Ember.VERSION : 1.0.0-rc.1
DEBUG: Handlebars.VERSION : 1.0.0-rc.3
DEBUG: jQuery.VERSION : 1.9.1
DEBUG: -------------------------------
Uncaught Error: assertion failed: Your server returned a hash with the key total_pages but you have no mapping for it 
Run Code Online (Sandbox Code Playgroud)

当您查看我的数据存储代码时,这完全取得了以下结果:

Todos.Store = DS.Store.extend({
    revision: 12,
    adapter: DS.RESTAdapter.create({
        mappings: {objects: "Todos.Todo"},
        namespace: 'api'
    })
});
Run Code Online (Sandbox Code Playgroud)

我的问题是我该如何处理total_pages,num_results以及page?通过交易,我的意思是忽略所以我可以只映射objects数组.

Wil*_*Wit 3

您在 JSON 结果中返回的所有根属性都会映射到 Ember 数据中的 DS.Model。您不应返回未建模的属性,或者您应该对它们进行建模。

如果您想消除错误,您应该为不使用的属性创建一个空模型。

在这里阅读更多内容

为什么要归还不想使用的属性?或者它超出了你的控制范围?

  • 我将返回未建模的属性,并且我不想对它们进行建模。 (2认同)