В настоящее время я создаю динамический c конструктор вопросников, в котором пользователь может выбирать из списка полей ввода (например, текстовое поле, флажок). Я создаю поля ввода динамически через ComponentFactoryResolver. Моя проблема в том, что, когда я переставляю созданные компоненты с помощью перетаскивания, компоненты не переставляют себя должным образом.
Я пытался следовать этому cdkDropList с ng-шаблоном в динамическом c список компонентов не работает . но у нас та же проблема.
Я создаю компоненты, подобные этой: publi c addField (questionnaireComponent: any): void {
const formFieldComponentFactory =
this.componentFactoryResolver.resolveComponentFactory(questionnaireComponent);
this.componentRef =
this.formQuestionnaireRef.createComponent(questionnaireFieldComponentFactory);
this.localDragRef.push(this.componentRef.instance.dragEnable(this.dragDrop));
this.droplistREf.withItems(this.localDragRef);
}
подписаться при удалении компонента
this.droplistREf = this.dragDrop.createDropList(this.fieldList);
this.droplistREf.dropped.subscribe(a => {
// cant get the componentRef here to rearrange component
});
}
мой код, который переставляет положение динамических c компонентов
public rearrangeQuestionnairePosition(): void {
this.formQuestionnaireRef.move(this.componentInstance.hostView, componentPosition);
}
проблема в том, что я не могу использовать функцию tailrangeQuestionnairePosition для перестановки динамически созданных компонентов, так как у меня нет экземпляра компонент componentRef
IM с использованием перетаскивания angular материала между прочим