骨干视图集合错误

时间:2015-02-19 03:58:30

标签: javascript node.js backbone.js express

我是骨干的新手,我只是想让这个观点发挥作用。我想从用户填写的表单中提供集合数据,然后将该用户重定向到其他位置。但是,我一直收到一个未定义的错误,即:

 Uncaught TypeError: undefined is not a function 

以下是导致错误的代码:

 //this lives within a Backbone view, as does the following constructor.
 clickSubmitRegister: function(e) {
     e.preventDefault();
     var formData = {};
     $('#registrationForm').find('input').each(function() {
         value = $(this).val();
         thisId = $(this).attr('id');
         if (value != '') {
             formData[thisId] = value;
         }
     });
     console.log(formData); //this displays the correct data, all good
     this.collection.create(formData); //this line throws me the error
 },

初始化构造函数如下:

initialize: function() {
    this.collection = new app.User();
    this.render();
},

1 个答案:

答案 0 :(得分:0)

如果您通过this.events对象正确设置了click事件。它应该按预期工作。您输入的代码完全没有问题。 如果您通过骨干this

设置事件,events始终会引用View实例

因此,只有两个可能的原因导致错误。

  1. this未引用View实例。这意味着您更改了this明确提及的内容,或者您​​使用$(this.el).on("click")之类的内容,因为这会更改{{1} }指的是点击元素。

  2. this.collection在this被调用后以某种方式被覆盖。 ofc你有可能initialize被替换。

  3. 我们无法检查它们,因为您没有输入完整的代码。

    所以试试

    this.collection.create