emberjsで簡単なブログアプリを作ろうとしています。このjsfiddleに見られるように、投稿のタイトルと本文を作成する機能は正常に機能します。
次に、個々の投稿をクリックしたときに表示されるコメント機能を追加したいと思います。ホームページで投稿をクリックし、個人のタイトルをクリックすると、コメントを追加するためのコメント ボックスが表示されます。
保存ボタンをクリックすると、次のエラーが表示されます
ember-data と rest adapter を使用するローカル開発環境で、次のエラーが発生します。
uncaught TypeError: Cannot call method 'commit' of undefined
同じコードのフィクスチャ アダプタを使用する JSfiddleでは、エラーは次のようになります。
TypeError: this.transaction is undefined this.transaction.commit();
投稿/show.handlebars
<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>
<br/>
<p> Add Comments</p>
{{render 'comment/new' comments}}
</script>
コメント/new.handlebars
<form {{action save on='submit'}}>
{{view Ember.TextArea valueBinding='body' placeholder='body'}}
<button type="submit"> Add comment </button>
</form>
EmBlog.CommentNewController = Em.ObjectController.extend({
needs: ['posts'],
addComment: function(){
post = this.get('controllers.postsShow').get('model');
comment = post.get('comments')
this.transaction = comment.get('store').transaction.createRecord({body: body});
},
save: function(){
this.transaction.commit();
}
});
EmBlog.Comment = DS.Model.extend({
body: DS.attr('string'),
post_id: DS.attr('integer')'
post: DS.belongsTo('EmBlog.Post')
});
コメントを作成するたびにpost_idが含まれるようにこれを修正する方法に関する提案。
**Update**
これは最新の要点です。コメントを保存してもエラーは表示されませんが、コメントはページに表示されません。彼らは黙って無視されているようです。