1

バックボーンで履歴を開始しようとしていますが、エラーが発生します:

undefined のメソッド 'start' を呼び出せません

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

このコードの前にjquery、underscore、およびbackbone jsが含まれているため、ドキュメントに基づいてこれが機能するはずだと思います。バックボーン 0.9.2 を使用しています。私はここで何をしているのですか?

編集:答え

ルーターのインスタンスを作成したくないので、Backbone.history.start() を呼び出す前にこのコードを追加しました。

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

3 に答える 3

3

Backbone.history1 つ以上のルーターがルートで定義された後にのみ開始できます。

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

Backbone.historyここで、ルートが定義されたときにオブジェクトが作成されることがわかります。投稿されたコードにルーターやルートが定義されていないので、これが問題であると推測しています。

于 2012-04-18T11:04:47.210 に答える
1

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

使用

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

コードのこの部分については、他のブロックで行ったように。

于 2012-04-18T11:22:33.987 に答える
0

それは大丈夫です、より多くのコードを提供できますか、そしてjquery、undescore、およびbackboneをロードするhtmlの一部を提供できますか。

前にバックボーン オブジェクトを調べます: Backbone.history.start(this.options.historyOptions);

履歴を開始する前にルーターを作成しましたか? (デリック・ベイリー)

于 2012-04-18T10:59:06.447 に答える