如何在分配路由之前更改Ember.js路由器中的URL?

时间:2014-03-20 18:50:33

标签: ember.js ember-router

我的Ember.js应用程序要求向后转换为特定文件扩展名的链接。 (即.pdf)换句话说,我是一个像这样的示例链接,以返回PDF:

http://www.example.com/docs/my.pdf

我试图预先处理URL,以便在Ember.js路由器为其分配路由之前删除.pdf,通过获取子字符串,并将其作为要处理的URL分配回来:

http://www.example.com/docs/my

显然,获取子字符串是微不足道的,但我不知道如何将更新后的URL注入Ember.js路由器。

2 个答案:

答案 0 :(得分:0)

您的方法从一开始就是非符合条件的。解决方案不是更新URL,而是首先使用您想要的URL。

而不是将用户发送到

http://www.example.com/docs/my.pdf

发送给

http://www.example.com/docs/my

然后在其中一个相关路由挂钩中(beforeModel hook将是我的偏好),将my.pdf文件发送给用户。

答案 1 :(得分:0)

您可以使用transitionTo()

或者this answer建议使用

Ember.HistoryLocation.replaceState(<string>);

router.replaceWith('index');