如何在 Angular 2 的方法中创建 @ViewChild 临时变量?

sud*_*hir 4 typescript viewchild angular

我',试图动态地向 div 添加一个 html 控件,在创建控件后,我想通过创建 viewchild 对其执行操作

 @ViewChild('dropDownListReference') myDropDownList: typeOfComponent
Run Code Online (Sandbox Code Playgroud)

能够在类中创建但在生成控件后的方法中无法初始化此

AddLevelClick() {
var el: HTMLElement = document.getElementById('multi-sort-body');
el.innerHTML = "<div #test1></div>";
 @ViewChild('test1') myDropDownList: typeOfComponent    // Unable to create here
}
Run Code Online (Sandbox Code Playgroud)

关于在本地创建 ViewChild 元素的任何线索?

Gün*_*uer 5

您不能使用ViewChild动态添加的 HTML。

ViewChild 仅适用于静态添加到组件模板的组件或指令类型或模板变量。

您也不能@ViewChild()在方法内添加。它仅适用于类级别的属性,并且也必须静态添加。

组件和指令也为静态添加到组件模板的 HTML 实例化。

不过,您可以使用ViewContainerRef.createComponent()动态添加组件。有关示例,请参阅带有用户单击所选组件的 Angular 2 动态选项卡