我正在学习Angular,并通过单击按钮动态地创建组件。我正在尝试使用Angular Material的拖放功能来拖动这些创建的组件以对其进行排序。我的基本组件html中有以下代码:
<div cdkDropList style="margin: 20px" (cdkDropListDropped)="drop($event)">
<div #container></div>
</div>
并且Typescript代码具有以下代码:
@ViewChild('container', {read: ViewContainerRef})
container: ViewContainerRef;
const childComponent = this.componentFactoryResolver.resolveComponentFactory(CustomComponent);
const component = this.container.createComponent(childComponent);
到目前为止,我已经设法动态创建了组件,并设法通过指令“ cdkDropList”将它们作为div的子代。
我不能做的是获取使用在其元素名称中声明的cdkDrag指令创建的组件。例如:
<app-CustomComponent cdkDrag>
我正在研究@HostBinding,可以创建具有属性的组件。无法弄清楚如何使用它来声明指令。我确定我缺少明显的东西,但是到目前为止,我仍然被卡住了。请帮忙。