同様の質問がすでにここで尋ねられましたモデル.保存()で成功コールバックをトリガーするにはどうすればよいですか? 、しかし、コールバックからイベントをトリガーする方法はまだ答えがありません。
したがって、ここsuccess
にコードのコールバックがあります。ここで、addOne
イベントを呼び出して、保存されたコメントをレンダリングします。すべてがうまく機能しますが、コールバックでこのイベントをトリガーthis.addOne(receivedItem);
することはできません。this
どこでも - 私はできます。
この問題を解決するには?
CommentsListView = Backbone.View.extend({
...
addOne: function (item) {
var commentView = new CommentView({
model: item
});
this.$el.append(commentView.render().el);
},
addNewComment: function (event) {
var item = {
post_id: this.$('#post_id').val(),
text: this.$('#text').val()
};
var commentItem = new CommentItem();
commentItem.save({'model':item}, {
success: function(receivedItem, response) {
this.addOne(receivedItem); // Uncaught TypeError: Object [object Window] has no method 'addOne'.
}
}, this);
}
});