Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 未调用(';add';)上的主干_Backbone.js - Fatal编程技术网

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内部确定了成功/错误。只是尝试了一下。错误也没有被调用