Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法设置属性';全部';未定义的_Javascript_Ember.js_Ember Data_Jsonserializer - Fatal编程技术网

Javascript 无法设置属性';全部';未定义的

Javascript 无法设置属性';全部';未定义的,javascript,ember.js,ember-data,jsonserializer,Javascript,Ember.js,Ember Data,Jsonserializer,在我的Ember.JS应用程序中,从API获取响应时遇到问题。我使用“虚拟”只是为了学习Ember,我不想创建自己的后端() 每当我尝试导航到Posts模板时,都会出现以下错误: Error while processing route: posts Cannot read property 'all' of undefined TypeError: Cannot read property 'all' of undefined at App.PostsRoute.Ember.Route

在我的Ember.JS应用程序中,从API获取响应时遇到问题。我使用“虚拟”只是为了学习Ember,我不想创建自己的后端()

每当我尝试导航到
Posts
模板时,都会出现以下错误:

Error while processing route: posts Cannot read property 'all' of undefined TypeError: Cannot read property 'all' of undefined
    at App.PostsRoute.Ember.Route.extend.model (file:///C:/Users/staff-ch/Documents/ember/js/app.js:24:18)
    at EmberObject.default.extend.deserialize (file:///C:/Users/staff-ch/Documents/ember/js/libs/ember-1.12.0.debug.js:22318:19)
    at applyHook (file:///C:/Users/staff-ch/Documents/ember/js/libs/ember-1.12.0.debug.js:45113:32)
    at Object.HandlerInfo.runSharedModelHook (file:///C:/Users/staff-ch/Documents/ember/js/libs/ember-1.12.0.debug.js:43114:22)
    at Object.subclass.getModel (file:///C:/Users/staff-ch/Documents/ember/js/libs/ember-1.12.0.debug.js:43340:21)
    at __exports__.bind (file:///C:/Users/staff-ch/Documents/ember/js/libs/ember-1.12.0.debug.js:44982:19)
    at tryCatch (file:///C:/Users/staff-ch/Documents/ember/js/libs/ember-1.12.0.debug.js:45439:16)
    at invokeCallback (file:///C:/Users/staff-ch/Documents/ember/js/libs/ember-1.12.0.debug.js:45451:17)
    at publish (file:///C:/Users/staff-ch/Documents/ember/js/libs/ember-1.12.0.debug.js:45422:11)
    at file:///C:/Users/staff-ch/Documents/ember/js/libs/ember-1.12.0.debug.js:26472:7
以下是相关代码:

App = Ember.Application.create();

App.ApplicationAdapter = DS.RESTAdapter.extend({
    host: 'http://jsonplaceholder.typicode.com/'
})

App.Router.map(function() {
  ...
  this.resource('posts');
});

App.Post = DS.Model.extend({
    userId: DS.attr(),
    title: DS.attr(),
    body: DS.attr()
});

App.PostsRoute = Ember.Route.extend({
    model: function(){
        return DS.store.all('posts');
    }
});
我怀疑这可能与返回的JSON格式有关,但我不确定,如果是这种情况,我也不确定如何修复它。很明显,我无法更改返回的JSON的格式,但是我知道有
DS.RESTSerilaizer
,但我不确定如何使用它。答复的样本:

[
  {
    "userId": 1,
    "id": 1,
    "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
    "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
  },...
]
1) 只是

而是
返回DS.store.all('posts')

将DS.Store作为
Store
属性注入路由


2) 您的回复必须有root
posts

更改
返回此.store.all('post')
to
返回DS.store.all('posts')会导致相同的错误。我无法更改JSON的格式,因此我需要对其进行序列化您的响应必须有根“posts”您知道我如何使用
DS.RESTSerializer
来实现这一点吗?我已经为您创建了使用mockjax的工作jsbin。看,我现在要去工作了。我导入脚本的方式似乎有问题。很奇怪。
App.PostsRoute = Ember.Route.extend({
  model: function(){
    return this.store.all('post');
  }
});