2012-06-03 20 views
6

私はBackbone.LocalStorageを使用しています:http://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を与えます。その後Backbone.LocalStorageので、期待localStorage: ...ライン

Uncaught TypeError: undefined is not a function

でエラーがundefinedが、なぜあるのでしょうか?

+0

backbone.jsを読み込んだ後にを追加しましたか? – Josnidhin

+0

「リソース」タブにあります。 – Blender

+0

@ josnidhin、はいjsFiddleのようにしました –

答えて

10

backbone.localStorage-min.jsあなたがロードしている:それは古くなっていると、それがすべてでBackbone.LocalStorageを定義していないよう

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

が見えます。使用しているbackbone.localStorage-min.jsのバージョンはBackbone.LocalStorageではなくwindow.Storeと定義されています。あなたはその(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

関連する問題