2012-06-03 15 views
6

estoy usando Backbone.LocalStorage: http://jsfiddle.net/jiewmeng/grhz9/3/Backbone Almacenamiento local "indefinido no es una función"

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

El primero da console.log()undefined. Entonces hay un error en la línea de localStorage: ...

Uncaught TypeError: undefined is not a function

esperada desde Backbone.LocalStorage es undefined pero ¿por qué?

+0

Ha agregado después de cargar backbone.js – Josnidhin

+0

Está en la pestaña "Recursos". – Blender

+0

@josnidhin, sí lo hice como en el jsFiddle –

Respuesta

10

El backbone.localStorage-min.js que cargue:

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

parece que está fuera de fecha y no define Backbone.LocalStorage en absoluto. La versión de backbone.localStorage-min.js que está utilizando define window.Store en lugar de Backbone.LocalStorage. Si cambia a que (http://jsfiddle.net/ambiguous/grhz9/5/):

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

entonces usted puede conseguir más allá de la construcción de su colección Todos. No obstante, no sé qué tan bien funcionarán las cosas cuando trates de usarlo. "Dom 14 de agosto 2011 09:53:55 -0400" es casi todo el tiempo pasado en Internet, por lo que la versión es bastante antigua.

Si cambia a la versión más reciente de Github:

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

verá que hay algunas diferencias en el código JavaScript y todo va a empezar a trabajar cuando se utiliza new Backbone.LocalStorage('todos'):

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

+1

A partir del 1 de febrero de 2013, los cdnjs de CloudFlare todavía se publicarán en la copia muy desactualizada el 14 de agosto de 2011. Tuve el mismo problema, no pensé en verificar si la versión de cdnjs estaba actualizada. – joemaller

+0

@joemaller: Me pregunto si ese es un problema de número de versión. La página [github] (https://github.com/jeromegn/Backbone.localStorage) dice v1.0 y habla de 'Backbone.LocalStorage', quizás la versión anterior' window.Store' también se marcó como v1.0. –

+0

Creo que sí, hay un par de problemas abiertos en la [página de github de CDN] (https://github.com/cdnjs/cdnjs/issues/search?q=backbone.localStorage), con suerte lo arreglarán todo fuera. – joemaller