javascript - Ember.js:要编辑什么文件才能将正斜杠附加到每个路由

标签 javascript url ember.js

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

例如,如果我转到 localhost:4200/posts 并有一个指向 /posts/#top 的 anchor 链接,则第一次页面将重新加载,因为原始网址是 /posts 而不是 /posts/

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

最佳答案

URL 的创建是 Location API 的职责。默认情况下,您可以通过 Router 中的 location 属性指定要使用的 Location API 实现。您可以创建自己的位置提供程序并注册它,然后在您的路由器中指定该位置提供程序。这不是我曾经尝试过做的事情,但您也许能够扩展现有的实现之一(例如 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
});

关于javascript - Ember.js:要编辑什么文件才能将正斜杠附加到每个路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38960294/

相关文章:

javascript - 还有其他方法可以重置字段吗

Javascript 函数不适用于单选按钮列表

javascript - getElementById 变量 + 数字

.htaccess - 带有 HTACCESS 文件的干净且 SEO 友好的 URL

javascript - Ember : Prevent transition based on response

javascript - 如何在 Ember.js 中推送/弹出数组?

javascript - 单个文件中多个 React 组件的 PropType 验证

java - 在 Java Spring REST Web 请求中包含一个 URL 作为参数

javascript - 如何从文本 javascript 中获取 url 字符串

javascript - Node JS ENOENT - 没有这样的文件或目录