2016-08-15 42 views
2

我正在创建一个基本的Ember应用程序,并且我希望将正斜杠/附加到每个URL的末尾。这样我就可以使用锚链接而不需要整个页面重新加载一次。Ember.js:要编辑哪个文件以向每个路径附加正斜杠

例如,如果我去localhost:4200/posts,并有一个锚链接/posts/#top,第一时间的页面将重新加载,因为原始URL是/posts而不是/posts/

现在我已经知道如何如何使用Javascript追加一个正斜杠到每个URL的末尾,但我的问题是如何与Ember做到这一点。是否有文件可以在我的应用程序中为每条路线定义此规则?或者我是否必须为每条我想添加正斜杠的路线定义这些规则?

+0

这也许是有用的https://guides.emberjs。 COM/V2.7.0 /配置-余烬/指定的URL型/#toc_hash –

回答

2

创建URL是Location API的职责。默认情况下,您可以通过Router中的location属性指定要使用的位置API的实现。您可以创建自己的位置提供商并进行注册,然后在您的Router中指定该提供商。这不是我曾经尝试过的,但是你可以扩展现有的一个实现(例如hashhistory)。

看到这里实现Location API的细节:https://github.com/emberjs/ember.js/blob/v2.7.0/packages/ember-routing/lib/location/api.js

然后,在一些初始化程序,你应该能够做到:

import CustomLocation from 'my/custom/location/api/implementation.js'; 
import Router from 'router'; 

Router.reopen({ 
    location: 'customLocation', 
    customLocation: CustomLocation 
}); 
相关问题