首页 > 解决方案 > 如何让 componentFactoryResolver 使用 RouterLink 创建锚点?

问题描述

我想动态地将锚标记添加到我页面上的某个点。

到目前为止,我有这样的事情

const componentFactory = this.componentFactoryResolver.resolveComponentFactory(HTMLAnchorElement);

let cmpRef = this.container.createComponent(componentFactory);
cmpRef.instance.text = 'click here';
cmpRef.instance.routerlink = "/mylink"

但是, cmpRef.instance.routerLink 不存在,可能是因为 HTMLAnchorElement 是实际的 Html 锚标记,而不是具有 routerlink 输入的角度版本。

Angular 中 Angular 锚标记的组件名称是什么?

标签: angular

解决方案


锚标记没有 Angular 组件。

如果您想自己实现它,那么它可能是这样的:

@Component({ 
  selector: 'router-link',
  template: `<a [routerLink]="routerLink">{{text}}</a>`
})
export class RouterLinkComponent {
  text: string;

  routerLink: string;
}

现在你可以像这样使用它:

const componentFactory = this.componentFactoryResolver.resolveComponentFactory(RouterLinkComponent);

let cmpRef = this.container.createComponent(componentFactory);
cmpRef.instance.text = 'click here';
cmpRef.instance.routerLink = '/about';

Ng 运行示例


推荐阅读