Iron-Router路由任意方法

时间:2013-08-29 22:01:33

标签: meteor meteorite iron-router

是否有可能有一个不会渲染任何模板的路线而只是做某事?

这是我正在寻找的功能:

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

如果没有,有没有办法实现这个功能?

1 个答案:

答案 0 :(得分:0)

当然,您可以覆盖路线中的默认操作。路由的默认操作是RouteController的run方法。通过为路径提供handler选项,可以在0.5.4中覆盖它。在dev分支中,您只需提供action选项。默认操作呈现主模板,然后将所有yield模板呈现到其正确的位置。但是你的动作功能可以做你想做的任何事情,包括根本不渲染任何模板。我将展示0.5.4和开发示例:

<强> 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
    });
  }
});

dev分支:

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
    });
  }
});