骨干本地存储“不确定是不是一个函数”(Backbone Local Storage “undefin

2019-06-25 03:31发布

我使用Backbone.LocalStoragehttp://jsfiddle.net/jiewmeng/grhz9/3/

$(function() {
    console.log(Backbone.LocalStorage); // undefined!!
    var Todo = Backbone.Model.extend({});
    var Todos = Backbone.Collection.extend({
        model: Todo,
        localStorage: new Backbone.LocalStorage("todos")
    });
});​

第一届console.log()给出了undefined 。 再就是在一个错误localStorage: ...线

遗漏的类型错误:未定义是不是一个函数

由于预计Backbone.LocalStorageundefined ,但为什么呢?

Answer 1:

backbone.localStorage-min.js你加载:

http://cdnjs.cloudflare.com/ajax/libs/backbone-localstorage.js/1.0/backbone.localStorage-min.js

看起来是过时的,它并没有定义Backbone.LocalStorage可言。 版本backbone.localStorage-min.js您使用定义window.Store而非Backbone.LocalStorage 。 如果您切换到( http://jsfiddle.net/ambiguous/grhz9/5/ ):

var Todos = Backbone.Collection.extend({
    model: Todo,
    localStorage: new Store("todos")
});

那么你就可以得到过去建立您Todos集合。 我不知道有多好,当你真正尝试,虽然用它的东西会工作。 “太阳2011年8月14日9时53分55秒-0400”是几乎永远-前在互联网的时间,使版相当的古玩。

如果切换到从GitHub最新版本:

https://raw.github.com/jeromegn/Backbone.localStorage/master/backbone.localStorage-min.js

你会看到有在JavaScript中的一些差异,一切都将开始工作,当您使用new Backbone.LocalStorage('todos')

http://jsfiddle.net/ambiguous/grhz9/4/



Answer 2:

对方的回答是正确的 - 1.0是过时的。

我已经更新backbone.localstorage到最新版本:

http://cdnjs.cloudflare.com/ajax/libs/backbone-localstorage.js/1.1.0/backbone.localStorage-min.js (生产)

http://cdnjs.cloudflare.com/ajax/libs/backbone-localstorage.js/1.1.0/backbone.localStorage.js (DEV)

希望帮助!



文章来源: Backbone Local Storage “undefined is not a function”