Backbone Local Storage & ldquo; Undefined is not a & rdquo;


I am using Backbone.LocalStorage:

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

The 1st console.log() gives undefined. Then there an error at the localStorage: ... line

Uncaught TypeError: undefined is not a function

Expected since Backbone.LocalStorage is undefined but why?

The backbone.localStorage-min.js you're loading:

looks like it is out of date and it doesn't define Backbone.LocalStorage at all. The version of backbone.localStorage-min.js that you are using defines window.Store rather than Backbone.LocalStorage. If you switch to that (

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

then you can get past building your Todos collection. I don't know how well things will work when you actually try to use it though. "Sun Aug 14 2011 09:53:55 -0400" is pretty much forever-ago in internet time so that version is rather antique.

If you switch to the latest version from Github:

you'll see that there are a few differences in the JavaScript and everything will start working when you use new Backbone.LocalStorage('todos'):