Witam.
Potrzebuje nakierowania jak ogarnąć temat subskrypcji, aby obiekt nie był undefined
w ngAfterViewInit()
. Korzystam z Angular material. Pobieram z API aktualne filtry usera i jeden z elementów tego filtru to sortowanie. Pobrane sortowanie chce przypisać do MatSort
, które jako @ChildView()
jest widoczne dopiero w AfterViewInit()
, a tam filtr jest undefined
, ponieważ jeszcze nie skończył "subskrybować"
@ViewChild(MatSort, { static: true }) matSort: MatSort;
constructor(
public dialog: MatDialog,
_matDialogRef: MatDialogRef<ProductsSelectionComponent>,
@Inject(MAT_DIALOG_DATA) data: { trigger: ElementRef, documentType: number },
private queryParameters: QueryParametersService,
private cdr: ChangeDetectorRef
) {
this.subcription.add(this.queryParameters.load(`products:${this.documentType}`, 1).subscribe(result => {
this.queryParameters.set(result);
}));
}
// W TYM MIEJSCU this.parameters JEST undefined
ngAfterViewInit() {
if (this.parameters.orderBy) {
this.matSort.sort({ id: this.parameters.orderBy.split(' ')[0], start: this.parameters.orderBy.split(' ')[1], disableClear: false } as MatSortable);
}
this.cdr.detectChanges();
}
Da się zrobić jakiegoś await
na subskrybcji żeby poczekać z AfterViewInit()
aż obiekt nie będzie undefined
?