0

Backbone プロジェクトの次のコードがあります。

App.Controllers.Test = Backbone.Router.extend({
  routes: {
    'test': 'test',
    'help': 'help'
  },

  help: function() {
    console.log('help');
  },

  test: function() {
    console.log('test');
  },

  initialize: function() {
    console.log('init');
  }
});


// ...

new App.Controllers.Test()

しかし、コンソールに表示されるのは、またはinitでURLを呼び出しても、 何が欠けているか知っている人はいますか?#test#help

4

1 に答える 1

4

初期化関数は常に最初に実行されるため、ルーターはインスタンス化されますが、Historyを呼び出していない可能性があります。ルーターを呼び出した後、次のようなコード行が必要です。

Backbone.history.start({pushState: true})

pushStateオプションは、履歴APIを備えた新しいブラウザーを使用している場合です。ルートをハッシュで呼び出しているため、pushStateは必要ない場合があります。

ルーターが可変ルートに割り当てられている場合、コードは次のようになります。

var routes = new Backbone.Router.extend({...});

Backbone.history.start({pushState: true});
于 2012-04-17T14:46:59.203 に答える