【发布时间】:2019-05-10 18:13:33
【问题描述】:
已更新(我对这个问题的理解更好):
我想根据用户单击的位置(哪个表格行)显示一个组件,我使用的是 ng2-smart-table,现在的问题是没有选择器可以动态加载组件。 在我的情况下,它的按钮父级是行。
每一行都有一个打开按钮
onOpen(event) {
var selectedRow = event.target.closest(".ng2-smart-row");
const newRow = document.createElement('tr');
newRow.innerHTML = `
<div #here></div>
`;
selectedRow.insertAdjacentHTML('afterend', newRow.innerHTML);
}
现在虽然 open 有效,但 ViewChild 似乎无法找到它,createCompoenent 也是如此,并且通过 this.here 是未定义的
@ViewChild('entry', {read: ViewContainerRef}) entry:ViewContainerRef;
const openerFactory = this.componentFactoryResolver.resolveComponentFactory(OpenActivityComponent);
const component = this.here.createComponent(openerFactory);
我想问题是,我可以动态设置@ViewChild 吗?
【问题讨论】:
-
我必须使用动态加载的组件,但是,如果我动态注入
<div #here></div>,它就不起作用了?
标签: javascript angular ng2-smart-table angular-dynamic-components