2

私はかなり長い間これに苦労してきました。Backbone.js と Require.js を併用しています。現在の URL (ハッシュではない) に従って特定のビューを表示するように Backbone に指示しようとしています。私のコードは次のようになります。

define(['jquery','underscore','backbone', 'views/manage_pages'], function($, _, Backbone,  ManagePages) {
  var AppRouter = Backbone.Router.extend({
    routes:{
      '/new_page': "showPageForm",
      '/edit_page': "showPageEditForm",
      '*actions': "showPageForm"
    },
  });
  var initialize = function(){
    appRouter = new AppRouter;
    appRouter.on("route:showPageForm", function(){
      console.log('hej');
    });
    appRouter.on("route:showPageEditForm", function(){
      console.log('ho');
    });
    var page_form = new ManagePages();
      Backbone.history.start();
    }
    return {
      initialize: initialize
    }
  });

したがって、基本的に、ユーザーがhttp://example.com/new_pageにアクセスするとログが記録<code>hej</code>され、http://example.com/editpageにアクセスするとログが記録されます<code>ho</code>。これを達成する方法、または可能かどうかさえわかりません。誰でも私を助けることができますか?

4

1 に答える 1

8

バックボーンのHTML5 push-stateのサポートを使用できます。これは、デフォルトで (ハッシュ フラグメントの代わりに) URL パスを使用します。呼び出すときにオプションとして指定するだけhistory.startです:

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

(アプリケーションがドメインの下のサブパスにある場合、バックボーンにそれをルートとして使用するように指示できることに注意してください -- Backbone.history.start({pushState: true, root: "/myapproot/"})-- あなたの場合は問題ではないように見えますが)。

于 2012-11-17T10:37:40.057 に答える