1

テンプレートをレンダリングせず、何かを行うだけのルートを持つことは可能ですか?

これは私が探している機能です:

this.route( {
    path: '/something/:info1/:info2',
    method: function() { 
        // do something with this.params.info1 and this.params.info2
        Router.go('elsewhere');
    },
});

そうでない場合、この機能を実現する方法はありますか?

4

1 に答える 1

0

もちろん、ルートのデフォルト アクションをオーバーライドできます。ルートのデフォルト アクションは、runRouteController のメソッドです。handlerルートにオプションを提供することで、0.5.4 でオーバーライドします。dev ブランチでは、actionオプションを提供するだけです。デフォルト アクションは、メイン テンプレートをレンダリングしてから、すべての歩留まりテンプレートを適切な場所にレンダリングします。ただし、アクション関数は、テンプレートをまったくレンダリングしないなど、好きなことを行うことができます。0.5.4 と dev の例を示します。

v0.5.4

this.route({
  path: '/something/:info/:info2',
  handler: function () {
    var info = this.params.info;
    var info2 = this.params.info2;
    this.redirect('elsewhere', {
      //optional context object which could include params
    });
  }
});

開発ブランチ:

this.route({
  path: '/something/:info/:info2',
  action: function () {
    var info = this.params.info;
    var info2 = this.params.info2;
    this.redirect('elsewhere', {
      //optional context object which could include params
    });
  }
});
于 2013-09-25T06:18:50.383 に答える