骨干本地存储"undefined is not a function"



我正在使用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,但为什么?

您正在加载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收藏。我不知道当你实际尝试使用它时,事情会有多好。"周日 Aug 14 2011 09: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/

另一个答案是正确的 - 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(开发)

希望对您有所帮助!

相关内容

最新更新