私はこのjsfiddleを持っています。コメントのフォームを送信して新しいコメントを作成できないことを除いて、すべてが機能します。フォームを送信すると、コンソールに未定義が表示されます。私が達成したいのは、既存の投稿を取得して、その投稿に属するコメントを作成することです。つまり、これが流れです。ユーザーは投稿をクリックし、特定の投稿タイトルをクリックして表示し、コメントの追加をクリックしてその投稿にコメントします。現時点では、[コメントの追加]ボタンをクリックすると未定義が返されることに注意してください。
addCommentメソッドとsaveメソッドを含むコードの関連セクション。
EmBlog.CommentNewController = Em.ObjectController.extend({
needs: ['postsShow'],
isAddingNew: false,
addComment: function(body){
post = this.get('controllers.postsShow.model');
store = post.get('transaction');
store.createRecord(EmBlog.Comment, {body: body});
this.set('isAddingNew', true);
},
save: function(){
console.log(this.store.commit());
}
});
**ハンドルバーテンプレートの関連セクション
<script type='text/x-handlebars' data-template-name='comment/new'>
{{#if controller.isAddingNew}}
<form {{action save on='submit'}}>
{{view Ember.TextArea valueBinding="body" placeholder="body"}}
<button type="submit"> save comment </button>
</form>
{{/if}}
<br/>
<div>
<button {{action addComment}} {{bindAttr disabled="isAddingNew"}}>
Add Comment
</button>
</div>
</script>
コメントフォームは、renderを使用して「posts/showtemplate」から送信されます
<script type="text/x-handlebars" data-template-name="posts/show">
<p> Comments</p>
{{render 'comment/new' comments}}
</script>