我有一个这样的组件 http://plnkr.co/edit/mJDHZIm5IzeMB9f2IVLE:
@Component({
template: `
<p [innerHTML]="link"></p>
`,
directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([
{ path: '/two', component: Two, name: 'Two'},
])
export class App {
two = (text: string) => `<a [routerLink]="['/Two']">${text}</a>`;
constructor(private _router: Router) { }
ngOnInit() {
this.link = `${this.two("two")}`;
}
}
有什么想法为什么它不编译link
值或如何使其工作?目标是对 url 进行硬编码,只需更改生成的链接的文本。
更新:
我也试过:
two = (text: string) => `<a href="/two">${text}</a>`;
由于 HashLocationStrategy,它在 plunker 中与 #/two
一起工作,但在我的应用程序路由器中没有检测到链接并且整个页面重新加载......
routerLink
是一个指令。不会为随 innerHTML
添加的 HTML 创建指令和组件。
如果您将link
设为Array
而不是string
.
这应该有效
<p [routerLink]="link"></p>
this.link = ['Two'];