为什么我不能在这种情况下将Id作为参数传递:
App.Router.map(function () {
this.route("home", {path: '/'});
});
App.HomeRoute = Ember.Route.extend({
model: function () {
// return this.store.find('post');//works
return this.store.find('post',1);//does not
},
setupController: function (controller, model) {
controller.set('info', model);
}
});
小提琴:http://jsfiddle.net/3bfsddvo/2/
价: http://emberjs.com/guides/models/finding-records/#toc_finding-a-single-record
我知道我正试图从我的“家”路线做到这一点,所以我猜想如果创建一条posts/[:id]
路线,那么它们的工作效果会好很多。
如何在家乡路线中只返回一个帖子?
答案 0 :(得分:1)
我将你的jsfiddle移动到jsbin并完成了错误(调试jsbins要容易得多)。我能够在控制台中看到这个错误,这给了一个很好的起点:
Error while processing route: home Assertion Failed: Cannot delegate set('info', <App.Post:ember353:1>) to the 'content' property of object proxy <App.HomeController:ember393>: its 'content' is undefined. Error: Assertion Failed: Cannot delegate set('info', <App.Post:ember353:1>) to the 'content' property of object proxy <App.HomeController:ember393>: its 'content' is undefined.
老实说,我并不是百分之百确定这是为什么会有效,但我通过做出这些改变让你的榜样有效。
首先,我为HomeController
添加了一个显式控制器:
App.HomeController = Ember.Controller.extend({
});
然后,在您的模板中,您没有任何内容可以迭代,因此您可以直接显示模型:
<ul>
<li>{{info.id}} - {{info.title}}</li>
</ul>