ember-data findAll无法正常工作

时间:2013-10-28 19:04:40

标签: ember.js ember-data

我正在使用ember-data最后一个版本,我正试图解决一个重要问题。

id的find函数工作正常,并且正确的记录被加载到数据存储中,因此我可以在模板中获取我想要的属性来渲染它们。

App.PostRoute = Ember.Route.extend({
  model: function(params) {
    return this.store.find('post', params.post_id);
  }
});

另一方面,findAll函数对我不起作用,问题是Ember不会抛出任何错误。此外,Ember不会加载任何记录,除此之外我不知道如何迭代模板中返回的RecordArray

App.PostsRoute = Ember.Route.extend({
  model: function() {
    return this.store.find('post');
  }
});

有什么建议吗?谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

如上所述,如果您的回复如下:

[
    {"id":"1","attribute1":"value1", ...,"attributen": "valuen"},
    {"id":"2","attribute1":"value1", ...,"attributen": "valuen"}
]

并且您没有提供自定义序列化程序来修改extractArray(...)中的响应,然后数据将无法处理,因为Ember Data需要以下内容:

{
    "pluralizedModelName": [
        {"id":"1","attribute1":"value1", ...,"attributen": "valuen"},
        {"id":"2","attribute1":"value1", ...,"attributen": "valuen"}
    ]
}

请参阅Ember Data 1.0特定代码:https://github.com/emberjs/data/blob/master/TRANSITION.md#rest-adapter-and-serializer-configuration

答案 1 :(得分:0)

您如何在模板中引用模型?您使用生成的控制器,还是自己定义?

此外,RecordArray应由Handlebars模板自动解析。尝试引用{{#each}}。默认情况下,您的模板将在控制器上查找属性,如果未找到,则冒泡到模型。如果可以的话,创建一个JSBin(emberjs.jsbin.com),我们可以与一个例子合作。

编辑:另外,您使用的是Fixture还是Rest Adapter?