路由器链接未使用 TS 模板语法进行编译



我有一个这样的组件 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'];

最新更新