2013-08-29 239 views
1

有沒有可能有一個路由不呈現任何模板,只是做一些事情?鐵路由器路由任意方法

這功能我要找:

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

如果不是,是否有實現這一功能的一種方式?

+0

你可以提取location.href的INFO1和INFO2 .. – Fabdrol

回答

0

當然,您可以覆蓋路由中的默認操作。路由的默認操作是RouteController的run方法。您可以通過爲路線提供handler選項來在0.5.4中覆蓋它。在開發分支中,您只需提供一個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 
    }); 
    } 
}); 

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