将元素编译到没有任何#localvariable 的特定位置
Posted
技术标签:
【中文标题】将元素编译到没有任何#localvariable 的特定位置【英文标题】:Compile element to specific location without any #localvariable 【发布时间】:2018-04-10 00:55:21 【问题描述】:如果没有#localvariable
(<input type='button' #localvariable (click)='doSomething()'>
),有什么方法可以将动态元素添加到特定位置。
例如,给定:
<td></td>
编译后:
<td><input type='button' (click)='doSomething()'></td>
【问题讨论】:
【参考方案1】:ComponentFactory.create
允许传递选择器或节点作为目标参数:
constructor(private resolver: ComponentFactoryResolver, private injector: Injector)
ngAfterViewInit()
let factory = this.resolver.resolveComponentFactory(MyDynamicComponent);
let compRef = factory.create(injector, [], '#idOfTarget');
另见https://angular.io/api/core/ComponentFactory#create
【讨论】:
使用 'ComponentFactory.create' 我们如何将数据传递到组件中。我的第二个问题是否可以将元素作为字符串而不是组件传递。compRef.instance.someField = 'foo';
***.com/questions/36325212/… 也展示了如何做到这一点。以上是关于将元素编译到没有任何#localvariable 的特定位置的主要内容,如果未能解决你的问题,请参考以下文章
JQuery .on() 没有将点击事件绑定到动态创建的元素[重复]