使用 ember 和 ember 数据按 ID 查找单个记录
Finding a single record by id with ember and ember data
为什么我不能在这种情况下将 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);
}
});
Fiddle: http://jsfiddle.net/3bfsddvo/2/
参考:
http://emberjs.com/guides/models/finding-records/#toc_finding-a-single-record
我知道我正在尝试从我的 'home' 路线执行此操作,所以我猜想如果创建了 posts/[:id]
路线,一切都会好很多。
如何才能return在我的家乡路线中只有一个post?
我将您的 jsfiddle 移动到 jsbin 并解决了错误(调试 jsbin 更容易)。我能够在控制台中看到这个错误,这是一个很好的起点:
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.
老实说,我不是 100% 确定为什么会这样,但我通过进行这些更改让您的示例正常工作。
首先我为 HomeController
添加了一个显式控制器:
App.HomeController = Ember.Controller.extend({
});
然后,在您的模板中,您无需迭代任何内容,因此您可以直接显示模型:
<ul>
<li>{{info.id}} - {{info.title}}</li>
</ul>
为什么我不能在这种情况下将 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);
}
});
Fiddle: http://jsfiddle.net/3bfsddvo/2/
参考: http://emberjs.com/guides/models/finding-records/#toc_finding-a-single-record
我知道我正在尝试从我的 'home' 路线执行此操作,所以我猜想如果创建了 posts/[:id]
路线,一切都会好很多。
如何才能return在我的家乡路线中只有一个post?
我将您的 jsfiddle 移动到 jsbin 并解决了错误(调试 jsbin 更容易)。我能够在控制台中看到这个错误,这是一个很好的起点:
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.
老实说,我不是 100% 确定为什么会这样,但我通过进行这些更改让您的示例正常工作。
首先我为 HomeController
添加了一个显式控制器:
App.HomeController = Ember.Controller.extend({
});
然后,在您的模板中,您无需迭代任何内容,因此您可以直接显示模型:
<ul>
<li>{{info.id}} - {{info.title}}</li>
</ul>