在遵循Emberjs.com上的“奥特莱斯”指南(http://emberjs.com/guides/outlets/)之后,我无法在帖子(子/单)模板中显示帖子的标题和正文。有没有人碰到这个?这是纲要:
# PostsTemplate
{{#each post in controller}}
<h1><a {{action showPost post href=true}}>{{post.title}}</a></h1>
<div>{{post.body}}</div> <------ title and body show up correctly here
{{/each}}
# PostTemplate
<h1>{{title}}</h1> <---- but title and body are EMPTY here
<div class="body">
{{body}}
</div>
{{outlet}}
# Router
App.Router = Ember.Router.extend({
root: Ember.Route.extend({
index: Ember.Route.extend({
route: '/',
redirectsTo: 'posts'
}),
posts: Ember.Route.extend({
route: '/posts',
showPost: Ember.Route.transitionTo('post'),
connectOutlets: function(router) {
router.get('applicationController').connectOutlet('posts', App.Post.find());
}
}),
post: Ember.Route.extend({
route: '/posts/:post_id',
connectOutlets: function(router, post) {
console.log(post); <------------------ This tells me the post has the write attributes.
router.get('applicationController').connectOutlet('post', post); #This post does not show up in PostTemplate above!
}
})
});
当我运行console.log(post)并检查帖子时,我发现我有以下内容:
Class = {
id: "1",
_data:
{
attributes:
{
body: "a",
title: "a"
}
},
title: null,
body: null
}
任何人都有任何想法,为什么我没有看到视图中出现的标题或身体属性?
P.S。 Post模型是一个Ember数据模型,可以正确地从Rails应用程序中检索id为1的Post。
答案 0 :(得分:1)
我相信您可以使用{{content.title}}和{{content.body}},因为您的Post模型应该设置为postController的内容。在视图中调试此方法的一种简单方法是将{{content}}放在视图中,该视图将呈现项目所在的模型类型(例如App.Post)。