Javascript 主干视图不适用于此.model.toJSON()
我在我的主干代码上实现了一个视图,试图在模型上添加数据之前显示所有修改。但由于某些原因,每当我尝试从表单中添加内容时,视图总是返回“this.model.toJSON()不是函数”。我不知道出了什么事 它包含内部视图“userView”render()。遵循我的2个视图,模型和集合 型号:Javascript 主干视图不适用于此.model.toJSON(),javascript,backbone.js,Javascript,Backbone.js,我在我的主干代码上实现了一个视图,试图在模型上添加数据之前显示所有修改。但由于某些原因,每当我尝试从表单中添加内容时,视图总是返回“this.model.toJSON()不是函数”。我不知道出了什么事 它包含内部视图“userView”render()。遵循我的2个视图,模型和集合 型号: var userModel = Backbone.Model.extend({ defaults: function() { return {
var userModel = Backbone.Model.extend({
defaults: function() {
return {
nome: '',
sobrenome: ''
};
}
});
视图:
视图2:
var userViewes = Backbone.View.extend({
model: users,
el: $("#user-container"),
initialize: function(){
this.model.on("add", this.render, this);
},
render: function() {
var self = this;
self.$el.html("");
_.each(this.model.toArray(), function(user, i){
self.$el.append((new userView({model: userModel })).render().$el);
});
return this;
}
});
最后,我的收藏:
var userCollections = Backbone.Collection.extend({
model: userModel
});
对不起,弄错了 问题是将未初始化的模型传递给视图。而不是
userModel
,传递user
_.each(this.model.toArray(), function(user, i){
self.$el.append((new userView({model: user })).render().$el);
});
另外,您不需要执行此.model.toArray()
,而是可以执行以下操作:
this.model.each(function(user, i){
self.$el.append((new userView({model: user })).render().$el);
});
就个人而言,我会称我的收藏为collection
,而不是model
您是否尝试过先测试模型:
console.log(this.model)
?是的。return this->function(){return parent.apply(this,arguments);}这看起来像一个未初始化的模型它解决了关于“this.model.toJSON()”的问题。但应用程序仍然没有在视图上显示数据。在本例中为用户名。请验证模型是否包含用户名。另外,您的模板代码在哪里?(#用户模板)我遇到了问题。我把js放在文档的末尾,一切正常。
this.model.each(function(user, i){
self.$el.append((new userView({model: user })).render().$el);
});