追加後にコメント一覧を自動更新したい
問題は、フィクスチャを使用して emberjs サンプルから開始し、ページの開始時に現在のデータを取得できるように変更したことです。ajax を介してコメント機能を追加することも追加しましたが、これらはすべてうまく機能します。新しいコメントを追加した後に自動的に表示する方法がわかりません。
これは私のアプリコードです:
window.Comments = Ember.Application.create();
Comments.Comment = DS.Model.extend({
content: DS.attr('string')
});
Comments.ApplicationController = Ember.ArrayController.extend({
rootElement: "#out",
actions: {
createComment: function () {
var title = $('#new-comment').val();
if (!title.trim()) { return; }
var comment = this.store.createRecord('comment', {
content: title
});
this.set('newContent', '');
comment.save();
}
}
});
Comments.commentsView = Ember.View.extend({
id: 'com',
layoutName: 'commentsTemplate',
comments: null,
init: function() {
console.log('init');
var par = this;
$.ajax({
url: "/getcomments",
type: "GET",
success: function(data) {
par.set("comments", data);
}
});
}
});
そしてこれが私のテンプレート
<div id="out"></div>
<script type="text/x-handlebars">
<div class="container">
<div class="row">
<div class="col-xs-6">
{{#view Comments.commentsView}}{{/view}}
</div>
</div>
</div>
</script>
<script type="text/x-handlebars" data-template-name="commentsTemplate">
{{#each comment in view.comments}}
<div class="well">
<b>{{comment.content}}</b>
</div>
{{/each}}
<br />
{{input type="text" id="new-comment" placeholder="What you want to say?" value=newContent action="createComment"}}
</script>
ところで。var title = $('#new-comment').val();
原因がthis.get('newContent')
未定義の値を返すことだったので、それを機能させるために何かをしなければなりませんでした