Angular 2:向动态创建的组件添加指令

Anv*_*ith 7 angular-directive angular-components angular

我遇到了以下Plunker来动态添加和删除组件.根据以上链接和许多其他SO帖子,我知道如何访问输入和输出属性:

this.compRef.instance.someProperty = 'someValue';
this.compRef.instance.someOutput.subscribe(val => doSomething()); 
Run Code Online (Sandbox Code Playgroud)

而且我还有一个指令"appFont".

import { Directive, ElementRef } from '@angular/core';

@Directive({
  selector: '[appFont]'
})
export class HighlightDirective {
    constructor(el: ElementRef) {
       el.nativeElement.style.font = 'Calibri';
    }
}
Run Code Online (Sandbox Code Playgroud)

如何将这个"appFont"指令添加到新动态创建的组件中?

Shy*_*gam 3

指令首先是一个类。

\n

如果您可以手动获取构造函数所需的内容,您可以简单地执行以下操作:

\n
const highlight = new HighlightDirective(...);\n
Run Code Online (Sandbox Code Playgroud)\n
\n

\xe2\x9d\x97 请注意,这不是标准的 Angular 代码。让 Angular 为您完成工作几乎总是更好的选择,因为您可能会意外地逃脱它的管道并变得失控。如果发生这种情况,您可能会遇到意外的 Angular 行为,因为 Angular 不知道您在做什么......

\n
\n

这是一个 3 年前的问题......我想知道是否有人仍在努力实现这一目标。

\n