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

前端之家收集整理的这篇文章主要介绍了jquery – 在backbone.js中同步整个模型集合前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图将整个模型集合同步到backbone.js中的服务器.我想将一个 JSON包发布到包含所有集合模型属性的服务器.这应该很简单,但我不确定我做错了什么:
  1. var RegisterCollection = Backbone.Collection.extend({
  2. initialize: function () {_(this).bindAll('syncCollection');},model: RegisterModel,url: 'api/process.PHP',updateModel: function(registerModel) {
  3. var inputName = '#'+registerModel.get('inputName');
  4. var userInput = $(inputName).val();
  5. registerModel.set({value: userInput});
  6. },syncCollection: function(registerModel) {
  7. this.sync();
  8. }
  9.  
  10. });
  11. var RegisterCollectionView = Backbone.View.extend({
  12. el: "#register",events: {
  13. "click #submit" : "validate"
  14. },validate: function(e) {
  15. e.preventDefault();
  16. $("#register").valid();
  17. if ($("#register").valid() === true) {
  18. this.updateModels();
  19. this.collection.syncCollection();
  20. }
  21. },updateModels: function (){
  22. this.collection.forEach(this.collection.updateModel,this);;
  23. },initialize: function(){
  24. this.collection.on('reset',this.addAll,this);
  25. },addOne: function(registerModel){
  26. var registerView = new RegisterView({model: registerModel});
  27. this.$el.append(registerView.render().el);
  28. },addAll: function(){
  29. this.$el.empty();
  30. this.collection.forEach(this.addOne,this);
  31. this.$el.append('<button type="submit" class="btn-primary btn" id="submit" style="display: block;">Submit</button>');
  32. },render: function(){
  33. this.addAll();
  34. return this;
  35. }
  36. });
  37. var registerCollection = new RegisterCollection();
  38. registerCollection.fetch();
  39.  
  40. var registerCollectionView = new RegisterCollectionView({collection: registerCollection});
  41. registerCollectionView.render();

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

解决方法

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

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

猜你在找的jQuery相关文章