Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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 主干视图不适用于此.model.toJSON()_Javascript_Backbone.js - Fatal编程技术网

Javascript 主干视图不适用于此.model.toJSON()

Javascript 主干视图不适用于此.model.toJSON(),javascript,backbone.js,Javascript,Backbone.js,我在我的主干代码上实现了一个视图,试图在模型上添加数据之前显示所有修改。但由于某些原因,每当我尝试从表单中添加内容时,视图总是返回“this.model.toJSON()不是函数”。我不知道出了什么事 它包含内部视图“userView”render()。遵循我的2个视图,模型和集合 型号: var userModel = Backbone.Model.extend({ defaults: function() { return {

我在我的主干代码上实现了一个视图,试图在模型上添加数据之前显示所有修改。但由于某些原因,每当我尝试从表单中添加内容时,视图总是返回“this.model.toJSON()不是函数”。我不知道出了什么事

它包含内部视图“userView”render()。遵循我的2个视图,模型和集合

型号:

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