Mam komponent macierzysty, który jest listą i elementem dziecka, który pokazuje szczegóły i umożliwia użytkownikowi edycję tych danych. Szukam sposobu na zadawanie komponentu mojego dziecka, czy nadal ma jakieś niezapisane zmiany przed pozwoleniem użytkownikowi zmienić wybór.

Aktualna konfiguracja: rodzica (uproszczona): DX-Tree-lista z (OnrowClick) = "EditStatus ($ Event)"

    editStatus(event: any): void {
        this.getEditableStatus(event.data.id);
    }

    getEditableStatus(id: number): void {
        this._statusService.getEdit(id).subscribe(editableStatus => {
            this.selectedStatus = editableStatus;
        });
    }

<configuration-project-status-detail *ngIf="!!selectedStatus" [selectedStatus]="selectedStatus">
                </configuration-project-status-detail>

Dziecko:

    ngOnChanges(): void {
        if (!!this.selectedStatus) {
            this.selectedStatusCopy = _.cloneDeep(this.selectedStatus);
        }
    }

Te zmiany są wykonane na kopii, dzięki czemu lista nie jest aktualizowana w tym samym czasie.

Potrzebuję więc sposobu na sprawdzenie zmian w dziedzinie opiekuńczej (który ma funkcję Haschanges, ale porównuje do SelectionStatus), więc nie można go zmienić przed sprawdzeniem, co oznacza, że musi być sprawdzony przed "Geteditablestatus". Czy jest jakiś inny sposób, a następnie przechodząc boolean do dziecka, które następnie z kolei emituje kolejną wartość?

1
Lotte Lemmens 31 lipiec 2020, 10:11

1 odpowiedź

Najlepsza odpowiedź

Znalazłem to, mój oryginalny pomysł nie jest możliwy ... To jest:

@ViewChild(ProjectStatusDetailComponent, { static: false }) childComponent: ProjectStatusDetailComponent;

if (!!this.childComponent) {
   console.log(this.childComponent.hasChanges());
}
1
Lotte Lemmens 31 lipiec 2020, 08:08