Javascript 主干模型.save()覆盖以前的模型
我在保存模型时遇到问题。相反,为了用新的cdi创建一个新模型,我总是得到相同的cd1,似乎我的模型只是覆盖了以前的模型 这是我的简单报名表: Html }) 视图: }) 收藏: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
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: ""
});
}