Angular 2 - routerLink 不适用于外部链接
Angular 2 - routerLink doesn't work with external links
我正在尝试使用带有外部链接的 routerLink。链接公开在 index.html 上(就像来自外部应用程序的菜单),如下所示:
Index.html
<body>
<div>
<ul>
<li><a onclick="window.changePage('home')" routerLink="/">Home</a>
</li>
<li><a onclick="window.changePage('info')" routerLink="/">Info</a>
</li>
</ul>
</div>
<app-root></app-root>
</body>
当我从这个外部链接访问时,问题似乎是 angular 没有加载 RouterModule。如果我按 this.router.navigate(....) 导航,则效果很好。
我在这里举个例子:
plunker
第 1 步:单击“主页”和“转到信息”按钮。可以看到"Go to Info"有一个routerLink,可以点击。
第二步:刷新页面。单击信息,您会看到无法单击 "Go to Info"。
如何强制 angular 加载带有外部链接的 RouterModule?
更新
查看评论和其他答案,以下只是解决方法
@Günter Zöchbauer 已经在评论中提到了解决方案
如下更改您的信息组件
import { Component } from '@angular/core';
@Component({
/* use href instead of routerlink*/
template: `Info HTML
<a href="/home">Go to Home</a>
`,
})
export class InfoComponent {
constructor() {
}
}
最好在您的 .ts 文件中路由它。
在锚标签中,只需调用函数window.changePage('home') 类似地window.changePage('info'),和
在函数内的 .ts 文件中导航它。
我正在尝试使用带有外部链接的 routerLink。链接公开在 index.html 上(就像来自外部应用程序的菜单),如下所示:
Index.html
<body>
<div>
<ul>
<li><a onclick="window.changePage('home')" routerLink="/">Home</a>
</li>
<li><a onclick="window.changePage('info')" routerLink="/">Info</a>
</li>
</ul>
</div>
<app-root></app-root>
</body>
当我从这个外部链接访问时,问题似乎是 angular 没有加载 RouterModule。如果我按 this.router.navigate(....) 导航,则效果很好。 我在这里举个例子: plunker
第 1 步:单击“主页”和“转到信息”按钮。可以看到"Go to Info"有一个routerLink,可以点击。 第二步:刷新页面。单击信息,您会看到无法单击 "Go to Info"。 如何强制 angular 加载带有外部链接的 RouterModule?
更新
查看评论和其他答案,以下只是解决方法
@Günter Zöchbauer 已经在评论中提到了解决方案
如下更改您的信息组件
import { Component } from '@angular/core';
@Component({
/* use href instead of routerlink*/
template: `Info HTML
<a href="/home">Go to Home</a>
`,
})
export class InfoComponent {
constructor() {
}
}
最好在您的 .ts 文件中路由它。
在锚标签中,只需调用函数window.changePage('home') 类似地window.changePage('info'),和
在函数内的 .ts 文件中导航它。