Angular 6 восстанавливает переданный параметр до его первоначальных значений после закрытия ngbModal - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть таблица с объектами с кнопками редактирования и удаления, поэтому, когда я передаю paremeter (объект в строке) из parentComponent модалу «edit» (используя ngbModal), а затем изменяю некоторые значения, но потом я сожалею и закрываюэто с X в заголовке модальной таблицы сохраняет последнее измененное значение, так как я могу восстановить параметр к его первоначальному значению?

Это моя функция parentComponent.ts, чтобы открыть модальное и передать paremeter:

//receives the element from row and pass it to modal
openModalEdit(element){
    const modalRefCity = this.modalService.open(ModalEditComponent);
    modalRefCity.componentInstance.horario = element;

    modalRefCity.componentInstance.horarioevent.subscribe(($e) => {
        this.editHorario($e);
        this.modalService.dismissAll();
        console.log($e);
    })
}

Это отлично работает, модал открыт и значение передается для редактирования.

Это мой ModalEditComponent:

export class ModalEditComponent implements OnInit {

    @Input() horario;
    @Output() horarioevent = new EventEmitter<string>();

     constructor(public activeModal: NgbActiveModal) { }

    updateHorario(){

     this.horarioevent.emit(this.horario);
    }

Это мой модал-edit.component.html

<div class="modal-header">

 <button type="button" class="close" aria-label="Close" (click)="activeModal.dismiss('Cross click')">
    <span aria-hidden="true">&times;</span>
  </button>
</div>
<div class="modal-body">
  ...

Таким образом, когда я изменяю значения horario (параметр, переданный из parent), а затем сохраняю новые значения, он отлично работает (функция edit работает нормально).

Проблема в том, что когда я открываю модальное окно, затем изменяю некоторые значения horario, а затем жалею, поэтому закрывайте модальное окно с помощью кнопки X в заголовке модального окна, модальное окно закрывается, но объектыпоказать его значения с последними внесенными мною изменениями (я знаю, что это только в моем представлении, а не в моей базе данных).

Как я могу сбросить параметр до его первоначальных значений?

1 Ответ

0 голосов
/ 05 декабря 2018

Вы можете использовать синтаксис Spread для передачи копии данных из родительского компонента дочернему

modalRefCity.componentInstance.horario = {...element};

Синтаксис Spread

...