2012-03-07 8 views
0

バックボーン0.9.1の新機能です。 ハッシュを変更すると見つかりました。デモでハッシュ変更を開始できません。 私のURLはhttp:// [...]/backbone /#helpです。私は警告メッセージ「ヘルプ」を受け取るべきだと思うが、私はそうではない。バックボーンルーターはディスパッチされませんか?

$(function() { 
    var App = { 
     Controllers:{}, 
     initialize: function(){ 
      new App.Controllers.Routes(); 
      var h = new Backbone.History(); 
      h.start({root: '/backbone/'}); 
     } 
    }; 

    App.Controllers.Routes = Backbone.Router.extend({ 
     routes: { 
      "help":     "help", 
      "search/:query":  "search", 
     }, 

     help: function() { 
      alert("help"); 
     }, 

     search: function(query) { 
      alert("search"); 
     } 
    }); 

    App.initialize(); 
}); 

誤解や誤用はありますか?

答えて

1

自分で履歴オブジェクトをインスタンス化する必要はありません。また、pushstateを使用していない場合は、開始オプションにrootを指定する必要はありません。

だから、あなたのinitializeメソッドは次のようになります。あなたの助けを


     initialize: function(){ 
      new App.Controllers.Routes(); 
      Backbone.history.start(); 
     } 
+0

THXを〜 が、私はBackbone.history.startを呼び出すときにバックボーンに思えるが、バックボーンのプロトタイプでの歴史がありません0.9.1 ();エラーメッセージが受信されました:Uncaught TypeError:未定義のメソッド 'start'を呼び出すことができません。 ルータに0.9.1の変更がありますか? – Hopen

+0

は0.9.xの変更ではなく、.history属性はBackboneオブジェクトのプロトタイプの一部ではありませんでした。 Backbone.history属性は、ルートが定義されたルータをインスタンス化した後で自動的に追加されます。このエラーが発生した場合は、ルータがインスタンス化されていないか、正しく設定されていないことを意味します。 –

+0

初期化機能を に変更する新しいApp.Controllers.Routes(); Backbone.history.start(); 問題が解決しました。 – Hopen