gpt4 book ai didi

javascript - 主干 View 不适用于 this.model.toJSON()

转载 作者:太空宇宙 更新时间:2023-11-04 15:56:44 25 4
gpt4 key购买 nike

我已经在我的主干代码上实现了一个 View ,尝试在我的模型上添加数据之前显示所有修改。但由于某种原因,我的 View 始终返回“this.model.toJSON() 不是函数”,我尝试从表单中添加一些内容。我不明白出了什么问题。

它发生在 View “userView”render() 内部。关注我的 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;
}
});

View 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
});

抱歉有任何错误。

最佳答案

问题是您将未初始化的模型传递给 View 。传递 user,而不是 userModel

_.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);
});

Personally I'd call my collection collection and not model

关于javascript - 主干 View 不适用于 this.model.toJSON(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42634138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com