我有一个包含此内容的模板templates/post.hbs
:
<h2>{{title}}</h2>
<div>
{{#link-to 'post.edit' this}}Edit{{/link-to}}
<a {{action 'destroy'}}>Destroy</a>
</div>
{{text}}
{{ render 'comments/new' }}
<h3>Comments</h3>
{{#each comments}}
<strong>{{author}}</strong>
{{text}}
{{/each}}
底部附近的comments/new
表格有这样的内容:
<h3>Leave a comment</h3>
<form>
<p class='input-group'>
<label for='text'>Text</label><br>
{{textarea value=text class="form-control" rows="10" cols="50"}}
</p>
<input type='button' value='Add Comment' class='btn btn-primary' {{action 'save' this}}>
</form>
在何处以及如何设置要在此表单中使用的Blorgh.Comment
对象?它会进入PostRoute
还是CommentsNewController
?如果是这样,语法是什么?
答案 0 :(得分:2)
有几种方法可以实现这一目标,但我建议使用以下方法之一:
使用CommentsNewController
&#39; init
方法设置模型。它看起来像这样:
App.CommentsNewController = ObjectController.extend({
init: function() {
this.set('model', App.Comment.create());
}
});
将新评论绑定到PostRoute
中的控制器属性,然后将其传递给渲染助手,如下所示:
{{render 'comments/new' comment_object }}
您甚至可以使用插座,并在PostRoute#setupController
中完成所有操作。