使用 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>

JSBin