将元素编译到没有任何#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() 没有将点击事件绑定到动态创建的元素[重复]

将底部元素定位在垂直中心

当条件包含 IS NULL OR LEN(@localvariable) 时,SQL 非常慢

当没有选择任何元素时如何在元素之间交替类并返回原始

编译简单 boot_mpi 分散程序时出错:没有序列化元素

无法将 AutoLayout 约束添加到 UITableViewCell 中的元素