以下emberjs指南#linkTo帮助器不显示单个帖子

时间:2013-01-20 16:46:03

标签: ember.js ember-router

我有 jsfiddle ,其路线如下所示,与 emberjs guides 中的路线完全相同,当我点击时 {{post.title}} 附加 #linkTo帮助,它应该向我显示个别帖子,但它没有,而是控制台显示此错误:

未捕获错误:断言失败:无法在未定义的对象上使用'id'调用get。

当我点击主页上的帖子链接时,它会显示所有标题,但在控制台中,它也会显示以下错误:

未捕获错误:您执行的某些操作会导致视图在渲染后重新渲染但在插入DOM之前会重新渲染。

EmBlog.Router.map(function() {
  this.resource("posts", function(){
    this.route('show', {path: '/:post_id'}) ;
  });
});

emberjs guides

相同的模板
<script type="text/x-handlebars" data-template-name="posts/index">
  {{#each post in content}}
    <p>{{#linkTo 'posts.show' post}} {{post.title}}  {{/linkTo}}</p>
 {{/each}}
</script>

我查看了 commit that added support for string literals as param for {{linkTo}} ,特别是下面提交的建议:

现在,Ember允许您将字符串文字指定为参数。 {{#linkTo post popular}} 会在当前上下文中查找“热门”属性,并生成一个指向具有该ID的模型的URL。虽然 {#linkTo post“popular”}} 会将字符串文字“热门”视为模型。

1 个答案:

答案 0 :(得分:2)

似乎唯一的问题是你忘记将上下文传递给帖子/显示模板中的linkTo posts.edit帮助器。

<script type="text/x-handlebars" data-template-name="posts/show">
  <h1>Post</h1>
  <p>Your content here.</p>
  <h3> {{title}} </h3>
  <h3> {{body}} </h3>
  <br/>
  <p> {{#linkTo 'posts.index'}} back {{/linkTo}}</p>
  <p> {{#linkTo 'posts.edit' content}} Edit the post  {{/linkTo}}</p>  
</script>

这是一个工作小提琴,BTW我已经清理了一些,有些事情对我来说似乎毫无用处。

http://jsfiddle.net/rxWzu/9/