【发布时间】:2017-02-28 16:58:27
【问题描述】:
我的问题标题可能有点令人困惑,因此希望以下详细信息能够解决它。
本质上,导航栏是我无法控制的,它是用纯 HTML/JS 编写的。我的应用程序是用 Angular 编写的,并在其中设置了路由。
我可以做些什么来从导航栏触发我的 Angular 应用程序中的路由?
假设我在 index.html 中有以下内容:
<body>
<header>
<a onclick="history.pushState({}, '', '/home');">Home</a>
<a onclick="history.pushState({}, '', '/test');">Test</a>
</header>
<app-root></app-root>
</body>
显然,我的 Angular 应用程序从 <app-root> 开始,并且不知道它上面的标签。但是,有没有办法从外部影响 Angular 内部的路由?
我认为调用 history.pushState() 会改变它,但它似乎没有做任何事情。它确实更改了 URL,但浏览器上显示的组件保持不变。它不会切换组件。
有没有人能解决这个问题?
非常感谢您的帮助!
【问题讨论】:
-
你的基础href是否设置在head标签中?它是什么? angular.io/docs/ts/latest/guide/router.html#base-href
-
@Will 已设置。在我的示例应用程序中(我在问题中描述的方法不起作用),它只是设置为
标签: javascript html angular