是否有可能有一个不会渲染任何模板的路线而只是做某事?
这是我正在寻找的功能:
this.route( {
path: '/something/:info1/:info2',
method: function() {
// do something with this.params.info1 and this.params.info2
Router.go('elsewhere');
},
});
如果没有,有没有办法实现这个功能?
答案 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
});
}
});