我已经在我的骨干代码上实现了一个视图,尝试在我的模型上添加数据之前显示所有修改。但由于某种原因,我的视图返回" this.model.toJSON()不是函数"我一直尝试从我的表单添加一些东西。我没有理解错误。
它会在视图中出现" userView"渲染()。按照我的2个观点,模型和集合。
模型:
var userModel = Backbone.Model.extend({
defaults: function() {
return {
nome: '',
sobrenome: ''
};
}
});
视图:
var userView = Backbone.View.extend({
model: new userModel(),
tagName : 'div',
initialize: function(){
this.template = _.template($("#user-template").html());
},
render : function() {
this.$el.html(this.template(this.model.toJSON()));
return this;
}
});
观点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
});
抱歉有任何错误。
答案 0 :(得分:1)
问题是您将未初始化的模型传递给视图。而不是userModel
,传递user
_.each(this.model.toArray(), function(user, i){
self.$el.append((new userView({model: user })).render().$el);
});
此外,您不需要执行this.model.toArray()
,而是可以执行此操作:
this.model.each(function(user, i){
self.$el.append((new userView({model: user })).render().$el);
});
我亲自打电话给我的收藏集
collection
而不是model