javascript - Backbone.js 和本地存储

标签 javascript backbone.js local-storage

尝试了解backbone.js。此示例使用 Backbone BoilerplateBackbone.localStorage我遇到了一个令人困惑的问题;当调用 quiizes.create(...) 时,我收到此错误:

backbone.js:570 - Uncaught TypeError: object is not a function

model = new this.model(attrs, {collection: this});

测验模块代码:

(function(Quiz) {
Quiz.Model = Backbone.Model.extend({ /* ... */ });

Quiz.Collection = Backbone.Collection.extend({
    model: Quiz,
    localStorage: new Store("quizes")
});
quizes = new Quiz.Collection;

Quiz.Router = Backbone.Router.extend({ /* ... */ });

Quiz.Views.Question = Backbone.View.extend({
    template: "app/templates/quiz.html",

    events: {
        'click #save': 'saveForm'
    },

    initialize: function(){
        _.bindAll(this);
        this.counter = 0;
    },

    render: function(done) {
        var view = this;
        namespace.fetchTemplate(this.template, function(tmpl) {
            view.el.innerHTML = tmpl();
            done(view.el);
        });
    },
    saveForm: function(data){
        if (this.counter <= 0) {
            $('#saved ul').html('');
        }
        this.counter++;
        var titleField = $('#title').val();
        console.log(quizes);
        quizes.create({title: titleField});

    }

});

})(namespace.module("quiz"));

最佳答案

在您的集合中,您将 model 命名为 Quiz 对象,而不是实际的 Quiz.Model。因此,当您调用 new this.model() 时,您实际上是在调用 Quiz() - 这是一个对象,而不是函数。您需要将代码更改为:

Quiz.Collection = Backbone.Collection.extend({
  model: Quiz.Model, // Change this to the actual model instance
  localStorage: new Store("quizes")
});

关于javascript - Backbone.js 和本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9020952/

相关文章:

backbone.js - 主干获取成功回调

javascript - 将二进制数据作为字符串存储在 Web Sql 数据库中

javascript - 如何使用 marionette.js 制作动态 GridView

javascript - 执行顺序是什么? JQuery : $(document). 准备好(函数(){}); $(窗口).on ('load' , 函数 () { })

javascript - 如何在点击时进行滑动切换?

javascript - BootStrap 和 jQuery-UI DatePicker 的冲突

javascript - requirejs blueimp fileuploader 只加载 min.js 文件而不加载其他文件

ios - 在 Swift 中存储数据的最有效方式

javascript - Chrome 扩展程序的永久存储

javascript - 如何在不提交表单的情况下验证表单