Angular2:使Angular2识别指令动态添加

时间:2016-10-26 04:28:35

标签: javascript jquery angular typescript

是否可以动态添加指令?例如,我有

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)。但仍然没有运气或我错过了什么?请帮忙..提前谢谢

0 个答案:

没有答案