2012-04-18 11 views
1

を働いていない開始しかし、私はエラーを取得する:ここでバックボーンの歴史は、私が骨格と歴史を開始しようとしています

Cannot call method 'start' of undefined

は完全なコードへのリンクです:http://pastebin.com/pNsYghgE

私は、jqueryのを持っているアンダースコア、およびバックボーンjsはこのコードの前に含まれているので、これはドキュメントに基づいて動作するはずです。私はバックボーン0.9.2を使用しています。私はここで何をしていますか?

EDIT:ANSWER

私は私がBackbone.history.start(と呼ばれる前にこのコードを追加したので)私のルータのインスタンスを作成しないで欲しい:

//initialize all routes 
_(this.modules()).each(function(module, moduleName) 
{ 
    _(module.routers).each(function(router, routerName) 
    { 
     new router(); 
    }); 
}); 

答えて

3

Backbone.historyにのみ起動することができます。

http://backbonejs.org/docs/backbone.html#section-113

あなたはルートが定義されている場合Backbone.historyオブジェクトが作成されていることを、ここで見ることができます。投稿されたコードにはルータやルートが定義されていないので、これが問題であると推測しています。あなたが他のブロックのために行っているよう

+0

私はルートを定義し、完全なソースコードにペーストビンリンクを加えました。また、console.log()でhistory.start()を呼び出す前にルートが作成されていることをテストしました。 – ryanzec

+0

私はルータのインスタンスを作成していなかったことが判明しました。 – ryanzec

0

それは、オーケー縫い目より多くのコードを提供することができますし、htmlの一部にjquery、undescore、およびbackboneをロードできますか?

前のバックボーンオブジェクトを検査します。Backbone.history.start(this.options.historyOptions);

履歴を開始する前にルータを作成しましたか? 1つまたは複数のルータがルートで定義された後(Derickベイリー)

1

行が実行されるとバックボーンがまだロードされていません。..

は、コードのこの部分については

$(function() { 
    // ... 
}); 

を使用してください。

関連する問題