Инициализировать данные о предмете на предмете в Drag and Drop - PullRequest
1 голос
/ 04 февраля 2020

здесь я создаю stackblitz того, что мне нужно. Откройте консоль, чтобы увидеть console.log().

Проблема в том, что я DROP элемент массива drop zone пуст (см. Консоль), но когда вы что-то набираете или выбираете что-то, на valueChange я получаю данные (также, проверьте в консоли).

Мне это нужно при загрузке, прежде чем я что-то выберу или наберу что-то ... Я хочу получить данные, когда я drop элемент.

Я использую emit() для получения данных между компонентом с шаблоном reusable-form-component.component и основным компонентом cdk-drag-drop-connected-sorting-example

Я пытаюсь с [attr.init], но я получаю undefined

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Вы можете сделать это, используя AfterViewInit Я изменил код для вас и добавил это Нажмите здесь для демонстрации

ngAfterViewInit(){
    debugger
    if (this.getFormControl == "INPUT")
      this.valueChange.emit({
        index: this.index,
        type: "INPUT",
        value: this.val
      });
    else if (this.getFormControl == "SELECT_BOX") {
      this.valueChange.emit({
        index: this.index,
        type: "SELECT_BOX",
        selectedValue: this.val,
        avaliableOptions: [
          "select option 1",
          "select option 2",
          "select option 3"
        ]
      });
    }
  }

Вы можете Нажмите здесь чтобы увидеть больше деталей для AfterViewInit interface

1 голос
/ 04 февраля 2020

Если вы хотите добавить элемент только в container.data, а не использовать TransferArray, ваша функция удаления должна выглядеть так:

  drop(event: CdkDragDrop<any>) {
    if (event.previousContainer === event.container) {
      moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
    } else {
      this.index= this.index+1;
      event.container.data.splice(event.currentIndex,
                       0,event.previousContainer.data[event.previousIndex])
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...