Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/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
Javascript 主干模型.save()覆盖以前的模型_Javascript_Backbone.js - Fatal编程技术网

Javascript 主干模型.save()覆盖以前的模型

Javascript 主干模型.save()覆盖以前的模型,javascript,backbone.js,Javascript,Backbone.js,我在保存模型时遇到问题。相反,为了用新的cdi创建一个新模型,我总是得到相同的cd1,似乎我的模型只是覆盖了以前的模型 这是我的简单报名表: Html }) 视图: }) 收藏: var Searchers = Backbone.Collection.extend({ model: User }); 还有我的app.js var SignUp = Backbone.View.extend({ el: '.container' }); var userModel = n

我在保存模型时遇到问题。相反,为了用新的cdi创建一个新模型,我总是得到相同的cd1,似乎我的模型只是覆盖了以前的模型

这是我的简单报名表:

Html

})

视图:

})

收藏:

   var Searchers = Backbone.Collection.extend({
    model: User
});
还有我的app.js

 var SignUp = Backbone.View.extend({
    el: '.container'
});

var userModel = new User();
var searchersCollection = new Searchers();
searchersCollection.bind('change', function(rec){
    console.log('A record was changed:' + rec);
});


var signupView = new SignupView({
    el: $(".form-signin"),
    model: userModel
});

var signup = new SignUp();
因此,如果用户在表单中键入数据,然后我在web控制台中选中KC:

用户模型

子{cid:c1,属性:对象,_changing:false,_previousAttributes:Object,changed:Object…}

但如果新用户输入新数据,我再次检查web控制台:

用户模型

子{cid:c1,属性:对象,_changing:false,_previousAttributes:Object,changed:Object…}

我得到了相同的cid,我的userModel中只有一个模型,属性是最后介绍的。 相反,我需要的是保存所有用户,而不是编写他们,并能够访问他们。。通过我的模型,我猜


我不明白我错在哪里:/

cid表示ClientID,在创建模型对象时分配。
您应该使用idAttribute来定义远程id字段。

据我所知,您需要的是一个集合,而不是一个模型

var Searchers = Backbone.Collection.extend({
    url: 'src/users.json',
    model: User
});
模型代表单个实体,如书籍或用户。 模型的保存方法用于将其数据与持久层同步,并使用从持久层返回的数据更新自身

集合是模型的集合。如果每次用户保存表单时都需要具有不同cid的新模型,则应将其添加到集合中,主干将初始化集合的model属性中指定的模型的新实例,并将其添加到集合中

因为您有一个用户实体数组,所以应该将集合指向users.json,而不是模型

var Searchers = Backbone.Collection.extend({
    url: 'src/users.json',
    model: User
});
您应该传递该类型模型的集合,而不是单个模型:

var signupView = new SignupView({
  el: $(".form-signin"),
  collection: searchersCollection
});
在save方法中,将应作为新模型添加的数据传递给collections add方法:

还要注意,您需要调用fetch方法,以便从端点填充集合


我建议您阅读文档和教程,因为您似乎还需要了解基础知识。

所需的输出是什么。。。?您需要在模型中保留以前的用户数据,并使用新用户数据添加新模型。。?如果是这样的话,我没有看到任何代码试图这样做。。。请解释你想要什么和你尝试了什么…我想在我的模型上保存所有新数据,所以当我检查my model>userModel时,我应该看到cd1和cd2。或者更一般地说,我希望看到我的模型:[{inputName:user1,…},{inputName:user2,…}]您将单个视图绑定到单个模型。所以很明显,save方法调用将导致更新请求,而不创建模型仍然是一样的。为什么期望不同?我希望我的所有模型都保存在一个数组中。我试图获得的是在users[]中保存许多不同用户的OBJD数据,这是我用户的内容。JSONI如果您想拥有模型数组,您必须使用。谢谢,我将尝试遵循此路径!如果你知道任何好的教程,我很高兴听到它,因为到目前为止,我可以找到只是Todo教程,这是一个可怕的和不现实的例子。这是我的个人教程:在书的帮助下创建一个真实的应用程序,这些书从不谈论获取,总是建议使用model.save。。。
var Searchers = Backbone.Collection.extend({
    url: 'src/users.json',
    model: User
});
var signupView = new SignupView({
  el: $(".form-signin"),
  collection: searchersCollection
});
saveInputs: function(evt) {
  evt.preventDefault();
  this.collection.add({
    name: "",
    age: ""
  });
}