コレクションに追加ハンドラーを定義しました。
var BookmarksCollection = Backbone.Collection.extend({
initialize: function() {
this.on('add', function(obj) {
console.log(obj.get('title') + ' added');
});
},
url: '/bookmarks',
model: Bookmark
});
そして、それは私の見解の1つから呼び出されています:
var AddView = Backbone.View.extend({
el: $('#entry'),
events: {
'click #submit': 'submitHandler'
},
submitHandler: function(event) {
if($('input').val()) {
var newBookmark = new Bookmark;
newBookmark.set({url: $('input').val()});
console.log('Save!');
newBookmark.save({
success: function(newBookmark) {
console.log('Success!');
myBookmarks.add(newBookmark);
myBookmarks.trigger('add', newBookmark);
}
});
}
}
});
ただし、コレクションの追加ハンドラーがトリガーされることはありません。実際、ビューの成功関数でさえ呼び出されていないようです。
ただし、newBookmarkはとにかく保存されるため、エラーは発生しません。
私は何が欠けていますか?
NodeJS は、新しいブックマークが投稿されると201(作成済み)で応答します。
たぶんバックボーンは200(OK)が成功を引き起こすことを期待していますか?
編集:成功関数の外部からイベントをトリガーしようとしましたが、機能します。201(作成済み)に反応するようにバックボーンを微調整するにはどうすればよいですか?