EmberJS不会自动在视图中显示上下文对象的属性

时间:2012-12-03 10:10:53

标签: javascript ember.js ember-data

在遵循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。

1 个答案:

答案 0 :(得分:1)

我相信您可以使用{{content.title}}和{{content.body}},因为您的Post模型应该设置为postController的内容。在视图中调试此方法的一种简单方法是将{{content}}放在视图中,该视图将呈现项目所在的模型类型(例如App.Post)。