Ember.js:要编辑的文件,以向每条路线附加正斜杠

时间:2016-08-15 17:54:35

标签: javascript url ember.js

我正在创建一个基本的Ember应用程序,我希望将正斜杠/附加到每个URL的末尾。这样我就可以使用锚链接而不需要重新加载整个页面一次。

例如,如果我转到localhost:4200/posts并拥有指向/posts/#top的锚链接,则首次重新加载该网页,因为原始网址为/posts而非{{1} }。

现在我已经知道如何使用Javascript在每个URL的末尾添加正斜杠,但我的问题是如何使用Ember执行此操作。是否有文件可以为我的应用程序中的每个路径定义此规则?或者我是否必须为每个要添加正斜杠的路径定义这些规则?

1 个答案:

答案 0 :(得分:2)

创建网址是Location API的责任。默认情况下,您可以通过location中的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
});