Angular语言 - CMS 返回可以包含 routerLink 实例的 HTML 内容:如何编译它们?任何解决方法



我面临以下(显然很简单(的情况:

@Component({
  selector: 'my-component',
  template: `
    <p>{{text}}</p>
  `,
})
export class MyComponent implements OnInit {
  public text: string;
  constructor(
    private route: ActivatedRoute,
    private apiService: ApiService
  ) {}
  @Input() id: number;
  ngOnInit() {
    this.route.params.subscribe(params => {
      this.text = this.apiService.getText(id);
    });
  }
}

变量text来自CMS,可以包含手动编写的routerLink实例(实际上是扩展routerLink的自定义指令(。

当调用ngOnInit时,是否有任何非黑客方法可以使这些指令编译?它必须与 AOT 合作。欢迎任何解决方法建议。

请注意,父组件位于"resolve"下,因此this.route.params.subscribe在被调用后将始终立即发出一个值。

谢谢!

抱歉,

我没有足够的影响力来评论,我并不是要陈述显而易见的事情,但是既然您将Angular 5与AoT一起使用,您是否看过Angular Universal?

我建议您在CMS中使用常规<a href>而不是<a routerLink>,然后解析<a href>以正确路由。这也将您的CMS与Angular应用程序分开。

我已经写了这篇文章,关于如何使用指令做到这一点:

Angular 2 是否可以解析从外部 CMS 接收的链接以解析为内部

该解决方案使用的窗口和文档不适用于AOT,但这些功能很容易重写。

最新更新