Backbone.js 未调用(';add';)上的主干
我在我的集合中定义了添加处理程序:Backbone.js 未调用(';add';)上的主干,backbone.js,Backbone.js,我在我的集合中定义了添加处理程序: var BookmarksCollection = Backbone.Collection.extend({ initialize: function() { this.on('add', function(obj) { console.log(obj.get('title') + ' added'); }); }, url: '/bookmarks', model: Bo
var BookmarksCollection = Backbone.Collection.extend({
initialize: function() {
this.on('add', function(obj) {
console.log(obj.get('title') + ' added');
});
},
url: '/bookmarks',
model: Bookmark
});
从我的一个观点来看:
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);
}
});
}
}
});
但是,我的集合上的添加处理程序从未触发。事实上,甚至视图中的success函数似乎都没有被调用
但是newBookmark会被保存,所以不会发生错误
我错过了什么
发布新书签时,NodeJ会以201(已创建)响应
也许主干网希望200(正常)触发成功
编辑:我尝试从success函数外部触发该事件,但效果良好。
如何调整主干以对201(已创建)作出反应?我认为问题在于
保存的第一个参数应该是您试图保存的数据。第二个选项包括success
和error
回调
newBookmark.save({dataiwanttosave: "hi"}, {
success: function(newBookmark) {
console.log('Success!');
myBookmarks.add(newBookmark);
myBookmarks.trigger('add', newBookmark);
}
})) 您可以尝试错误
回调,只要检查201的状态就可以了,如果您不想弄乱主干的代码的话。我怀疑它甚至可能在jQuery内部确定了成功/错误。只是尝试了一下。错误也没有被调用