我正在创建一个基本的Ember应用程序,我希望将正斜杠/
附加到每个URL的末尾。这样我就可以使用锚链接而不需要重新加载整个页面一次。
例如,如果我转到localhost:4200/posts
并拥有指向/posts/#top
的锚链接,则首次重新加载该网页,因为原始网址为/posts
而非{{1} }。
现在我已经知道如何使用Javascript在每个URL的末尾添加正斜杠,但我的问题是如何使用Ember执行此操作。是否有文件可以为我的应用程序中的每个路径定义此规则?或者我是否必须为每个要添加正斜杠的路径定义这些规则?
答案 0 :(得分:2)
创建网址是Location
API的责任。默认情况下,您可以通过location
中的Router
属性指定要使用的Location API的实现。您可以创建自己的位置提供程序并进行注册,然后在Router
中指定一个。这不是我曾尝试过的,但您可以扩展其中一个现有实现(例如hash
或history
)。
在此处查看有关实施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
});