Angular 8 - перестановка динамически созданных компонентов с помощью перетаскивания - PullRequest
1 голос
/ 10 января 2020

В настоящее время я создаю динамический 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 материала между прочим

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...