无法读取属性id的ember路由

时间:2013-12-17 09:10:22

标签: javascript ember.js

所以这是我的问题,我已经创建了一个搜索路径,到目前为止创建一个新的搜索工作我可以提交,它会向后端发送一个休息请求,依此类推,并且有效。

现在,当我尝试显示一个我保存时,我收到此错误

Assertion failed: Error while loading route: TypeError: Cannot read property 'id' of undefined 

我不能再进一步它不会渲染页面(我知道根据要点没有渲染,但我评论它是否是问题,而不是我仍然得到错误)< / p>

我从后端返回的JSON配置正确,我可以在ember检查器上看到它,我甚至尝试让后端返回所有搜索,并且ember检查器存储了很多这些,我还是得到同样的错误,这是要点的链接。

https://gist.github.com/mmarignoli/8002088

感谢。

1 个答案:

答案 0 :(得分:1)

尝试更换:

return this.store.find('Search', params.search_id);

return this.store.find('search', params.search_id);

请注意搜索中的小写“s”

另外,替换:

{"Searches": [{"id": 11, "name": "adwadwd"}]}

with:

{"searches": [{"id": 11, "name": "adwadwd"}]}

路径名称中的小写“s”:

this.resource('search.new', {path:'/search/new'});
this.resource('search', {path: '/search/:search_id'})

此外,您要求服务器提供对象,但是您要返回一个数组。

完整代码:

App.Router.map(function () {
    this.resource('search.new', {path:'/search/new'});
    this.resource('search', {path: '/search/:search_id'})
});

App.SearchRoute = Ember.Route.extend({
    model: function( params ) {
        return this.store.find('search', params.search_id);
    },
});

JSON:

{"search": {"id": 11, "name": "adwadwd"}}