1

我从我的 api 中获得了一个 html,它在我的 angular 模板中呈现。它包含链接到我的应用程序上其他路由的 url。例子:

http://localhost:4200/some/component?query=somethingelse&foo=bar

# or preferably
/some/component?query=somethingelse&foo=bar

如果我点击它,默认情况下它会在路由时重新加载应用程序。

我想要的只是重定向路由[routerLink],即不刷新页面。我试图添加点击方法,调用this.route.navigate,但我必须手动解析查询字符串(或使用库)才能使其工作。

我希望角度是否有更好的方法来做到这一点。如果没有,任何其他解决方案也值得赞赏。

4

1 回答 1

0

删除尾部反斜杠并像使用路由器链接 routerLink="some/component?xxxxxx" 使用 routerLink 时,您可以使用多种变体,尤其是静态链接。

请参阅此处的 api 文档以获取更多信息:

https://angular.io/api/router/RouterLink

特别是在您的情况下,这部分:

第一个段名称可以在前面加上 /、./ 或 ../:

如果第一段以 / 开头,路由器将从应用程序的根目录查找路由。如果第一段以 ./ 开头,或者不以斜杠开头,则路由器将改为查找当前激活路由的子节点。如果第一段以 ../ 开头,路由器将上升一级。

另外不要忘记,如果您在本地主机上的 dev 中运行此路由,则该路由将正常工作,但是如果您正在构建应用程序,则该路由将返回错误。路由器链接不是完整的 url 链接(因此是单页应用程序),您要么需要在后端映射路由,要么记得添加 #

RouterLink 将使用这些来生成此链接:/user/bob#education

于 2019-05-15T20:47:21.480 回答