routerLink没有用TS模板语法编译

时间:2016-02-28 16:48:22

标签: typescript angular angular2-template

我有一个像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路由器中没有检测到链接和整个页面重新加载...

1 个答案:

答案 0 :(得分:1)

routerLink是一个指令。不会为使用innerHTML添加的HTML创建指令和组件。

如果您使link成为Array而不是string

这应该有效

<p [routerLink]="link"></p>
   
this.link = ['Two'];