jquery – 在backbone.js中同步整个模型集合

前端之家收集整理的这篇文章主要介绍了jquery – 在backbone.js中同步整个模型集合前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图将整个模型集合同步到backbone.js中的服务器.我想将一个 JSON包发布到包含所有集合模型属性的服务器.这应该很简单,但我不确定我做错了什么:
var RegisterCollection = Backbone.Collection.extend({ 
    initialize: function () {_(this).bindAll('syncCollection');},model: RegisterModel,url: 'api/process.PHP',updateModel: function(registerModel) {
        var inputName = '#'+registerModel.get('inputName');
        var userInput = $(inputName).val();
        registerModel.set({value: userInput});
    },syncCollection: function(registerModel) {
        this.sync();
    }

});
var RegisterCollectionView = Backbone.View.extend({
    el: "#register",events: {
        "click #submit" : "validate"
    },validate: function(e) {
        e.preventDefault();
        $("#register").valid();
        if ($("#register").valid() === true) {
            this.updateModels();
            this.collection.syncCollection();
        }
    },updateModels: function (){
        this.collection.forEach(this.collection.updateModel,this);;    
    },initialize: function(){
        this.collection.on('reset',this.addAll,this);
    },addOne: function(registerModel){
        var registerView = new RegisterView({model: registerModel});
        this.$el.append(registerView.render().el);  
    },addAll: function(){
        this.$el.empty();
        this.collection.forEach(this.addOne,this);
        this.$el.append('<button type="submit" class="btn-primary btn" id="submit" style="display: block;">Submit</button>');
    },render: function(){
        this.addAll();
        return this;
    }
});
var registerCollection = new RegisterCollection();
registerCollection.fetch();

var registerCollectionView = new RegisterCollectionView({collection: registerCollection});
registerCollectionView.render();

当我尝试调用syncCollection()时,它返回以下错误:Uncaught TypeError:Object [object Object]没有方法’save’我是Backbone的新手,所以很可能是我在某处犯了一个相当基本的错误.. .

解决方法

好的,一壶新鲜咖啡,一天后,我明白了.我们不正确地调用sync().这是我们应该做的:
syncCollection: function() {
        Backbone.sync('create',this);
    }

感谢machineghost帮助我探索这个问题 – 我完全专注于错误的事情.

猜你在找的jQuery相关文章