Ember数据 - 在find()上调用super

时间:2014-05-07 21:08:03

标签: ember.js ember-data

DEBUG: ------------------------------- ember.js:3916
DEBUG: Ember      : 1.7.0-beta.1+canary.3d383376 ember.js:3916
DEBUG: Ember Data : 1.0.0-beta.7.f87cba88 ember.js:3916
DEBUG: Handlebars : 1.1.2 ember.js:3916
DEBUG: jQuery     : 1.10.2 ember.js:3916
DEBUG: ------------------------------- 

我正在开始一个非常简单的应用程序并尝试使用ember-data。我不确定这是一个错误还是我做错了什么。在我的路线和模型功能中,@store.find('post', 1)效果很好。但是,如果我尝试更改此内容以查找@store.find('post')的所有记录,则会收到此错误Error while loading route: posts No model was found for 'super' Error: No model was found for 'super'我不知道超级是什么,为什么我需要超级模特?该错误来自ember.data.js中 9797 行上名为modelFor:的函数。如果我在此函数中放置console.log(key),我会得到以下输出postApp.Postsuper

以下是我目前的代码,非常基本的代码:

App.Post

App.Post = DS.Model.extend
    title: DS.attr('string')
    description: DS.attr('string')

路由器

App.Router.map () ->
   @resource 'posts'

索引路线

App.IndexRoute = Ember.Route.extend
    beforeModel: () ->
        @transitionTo 'posts',

邮政路线

App.PostsRoute = Ember.Route.extend
    model: () ->
        @store.find('post')

适配器/串行器

App.ApplicationAdapter = DS.ActiveModelAdapter 

App.ApplicationSerializer = DS.ActiveModelSerializer

RESTAdapter

DS.RESTAdapter.reopen
    namespace: 'api/v1'

希望有人可以帮我发现错误或错误。

1 个答案:

答案 0 :(得分:4)

事实证明,如果您的json响应只返回一个空数组,那么您将收到此错误。例如 - http://emberjs.jsbin.com/baras/1/edit。我的json响应应该返回post: []而不仅仅是[],因为这不是ember数据的正确格式。一旦我改变了json以返回post: [],一切正常。

指南:http://emberjs.com/guides/models/the-rest-adapter/#toc_json-root

好读:http://jsonapi.org/