无法在模板中获取模型值

时间:2015-11-29 03:28:40

标签: ember.js

刚刚开始玩emberjs.dont知道这是一个愚蠢的问题还是好的问题,但是我已经陷入困境几天了,无法弄清楚原因。

在我的router.js

[1L, 2L, 3L...]

并且在路径文件夹中我将posts.js设置为follow.it具有简单的js varible,用于保存文章的id,title和body。

Router.map(function() {
  this.resource('posts', {path: '/'});
  ..........
  });

  .....
  this.resource('post', {path: 'posts/:post_id'});
});

在posts.hbs中,每个帖子的标题显示为指向帖子的链接。当然,通过将每个模型循环为| post |并打印链接到post.title。

我的post.js文件只是获取帖子的模型并将其返回。

export default Ember.Route.extend({
    model: function(){
         var posts = [
        {
        id:'1',
        title:'lipsome vesicle',
        body:"A liposome is a spherical vesicle"},      
        {
        id:'2',
        title:'another lipsome vesicle',
        body:"A liposome is a another vesicle"}
]
    //console.log(posts)
        return posts;
    }
});

在我的post.hbs模板中,我想简单地显示帖子的标题和正文。如果它像post.title或类似的东西,它会更加可修改。但我看到了一些教程如下。

export default Ember.Route.extend({

    model: function(params) {

        return this.modelFor('posts').findBy('id', params.post_id);
    }
});

url转到localhost:4200 / post / 1 但是我看不到标题和正文

当我在控制台中检查

的值时
 <h1>{{title}}</h1>
    <h1>{{body}}</h1>

但视图为空白。 我在某处读过,控制器是负责从模型中获取值的控制器。在那种情况下,我也不知道如何在该控制器中访问返回的模型。

我看过很多教程,包括railscast的raffler示例,因为我有rails的背景知识。但包括很多其他在内的那些东西似乎已经过时了。因此适用于所有新学习者这也是令人沮丧和困惑的。 除了emberjs指南外,还有新鲜的资源吗?

1 个答案:

答案 0 :(得分:0)

因为标题是在控制台上打印的,经过多次试用后我尝试了这个技巧,我终于设法在个人帖子中获得了我的头衔。当我点击$ E控制台时,Ember检查员插上了我的所有帖子。所以我把那个对象放在数组中并返回该数组。

model: function(params) {
        // console.log("hell")
         console.log(this.modelFor('posts').findBy('id', params.post_id).title);
         var post = [this.modelFor('posts').findBy('id', params.post_id)];
        return post;
    }

然后在我看来我循环遍历数组:

<ul>
    {{#each model as |post|}}
        <li>{{post.title}}</li>
    {{/each}}
</ul>

但我想知道更好的方法。