2017-07-26 121 views
2

当您使用其他元素的ElementRef.nativeElement.innerHTML属性向DOM添加指令元素时,指令不会触发。如何以导致指令触发的方式将元素添加到DOM?将指令附加到动态添加的元素


如果在我的组件我做类似如下:

export class AppComponent implements OnInit { 

    constructor(private _elem: ElementRef) { }  

    ngOnInit() { 
     this._elem.nativeElement.innerHTML = '<span myDirective>Foo</span>'; 
    } 

} 

(这是对我的实际实施的重大简化,让我们忽略了,这是不好的做法,对第二)

然后看起来连接到<span>myDirective永远不会实际运行。

现在的问题是:如何使角度识别带有指令的新元素以便它运行?

+0

我试图做到这一点之前没有成功,似乎我们没有这种可能性还,但至少你可以在这里看到相关答案:HTTPS: //stackoverflow.com/questions/41298168/how-to-dynamically-add-a-directive。希望能帮助到你! – pinkfloyd

+1

你需要编译它。阅读[这里是你需要知道的有关Angular的动态组件](https://hackernoon.com/here-is-what-you-need-to-know-about-dynamic-components-in-angular-ac1e96167f9e) –

+0

@Maximus感谢您的链接。比文档更有用和信息丰富。 –

回答