是否可以动态添加指令?例如,我有
dynamic.directive.ts
@Directive({
selector: '[diynamicdirective]'
})
class DiynamicDirective {
}
app.component.ts
@Component({
selector: 'app',
template: `
<div id="sample">
Sample
</div>
`
})
class App {}
bootstrap这个app.component.ts将解析为这样的
<html>
.
.
<body>
<div id="sample">
Sample
</div>
</body>
</html>
当应用程序运行时,我想添加diynamicdirective,由于某些原因我不想像这样使用“局部变量”
<div #dynamiclocalvar id="sample">Sample</div>
@ViewChild('dynamiclocalvar', { read: ViewContainerRef }) dynamiclocalvar: ViewContainerRef;
this.renderer.setElementAttribute(this.dynamiclocalvar.nativeElement, "diynamicdirective", '');
相反,我想像这样使用jQuery
$( "#sample" ).attr( "diynamicdirective" );
但是,我已经阅读了一些文档,并且其他SO讨论动态添加了直接angular2模板之外的元素或属性。
有没有这个问题的解决方案,我已经尝试过RuntimeCompiler重新编译模板(比如angularJS或angular 1中的$ compile)。但仍然没有运气或我错过了什么?请帮忙..提前谢谢