2012-06-03 99 views
6

我使用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: ...线

Uncaught TypeError: undefined is not a function

因为Backbone.LocalStorage预期的错误undefined但为什么呢?

+0

您是否在加载backbone.js后添加了 Josnidhin

+0

它位于“Resources”选项卡中。 – Blender

+0

@josnidhin,是的,我做了jsFiddle –

回答

10

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。我不知道当你真正尝试使用它时,事情会发挥多大作用。 “Sun 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

截至2013年2月1日,CloudFlare的cdnjs仍在服务于2011年8月14日的非常过时的副本。我有同样的问题,没想到检查cdnjs版本是否是最新的。 – joemaller

+0

@joemaller:我想知道这是否是版本号问题。 [github](https://github.com/jeromegn/Backbone.localStorage)页面说v1.0,并讨论'Backbone.LocalStorage',也许旧的'window.Store'版本也被标记为v1.0。 –

+0

我这么认为,在[CDN的github页面](https://github.com/cdnjs/cdnjs/issues/search?q=backbone.localStorage)上有一些开放性问题,希望他们能够将它们全部拉直出。 – joemaller

相关问题