【问题标题】:Dynamically load component into dynamic position将组件动态加载到动态位置
【发布时间】: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 吗?

【问题讨论】:

  • 我必须使用动态加载的组件,但是,如果我动态注入&lt;div #here&gt;&lt;/div&gt;,它就不起作用了?

标签: javascript angular ng2-smart-table angular-dynamic-components


【解决方案1】:

花了我很长时间。这里是Stackblitz

它不完整并且有一些调整,但涵盖了这个问题的所有内容。这是答案的main source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多