我有一个像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
值或如何使其工作的任何想法?目标是硬编码网址,只需更改生成链接的文本。
我也尝试过:
two = (text: string) => `<a href="/two">${text}</a>`;
由于HashLocationStrategy,在带有#/two
的plunker中工作,但在我的app路由器中没有检测到链接和整个页面重新加载...
答案 0 :(得分:1)
routerLink
是一个指令。不会为使用innerHTML
添加的HTML创建指令和组件。
如果您使link
成为Array
而不是string
。
这应该有效
<p [routerLink]="link"></p>
this.link = ['Two'];