У меня есть приложение, в котором нужно загрузить два типа данных (данные A, данные B). Есть три варианта, в которых я хочу отображать данные.
Если параметр A -> загрузить данные A
если параметр B -> загрузить данные B
если нет параметра -> загрузить данные A
У меня есть две функции AssessmentParameters (), которая вызывает executeQueryParams ()
accessParameters(): void {
this.route.queryParamMap.subscribe(params => {
const queryStrings: any = this.route.queryParamMap;
this.executeQueryParams(queryStrings.source.value);
});
}
async executeQueryParams(queryStrings): Promise<any> {
const queries = Object.entries(queryStrings);
for (const q of queries) {
switch (q[0]) {
case 'vendors':
this.vendorTerm = q[1];
if ( this.vendorsLoaded == false ) this.loadVendorData();
break;
case 'search':
this.searchTerm = q[1];
console.log("in executeQueryParams() for search");
this.loadSearchData();
break;
}
this.parametersLoaded = true;
}
return;
}
Если я загружаю accessParameters () в ngOnInit или в конструктор, кажется, что он загружается дважды. Первоначально ответ, как будто параметров нет, даже если он есть, а затем второй раз обработка параметров.
Если есть параметры, все работает как положено. Однако, если у меня нет параметра, он не загружает никаких данных. ЕСЛИ, я помещаю любой лог c, который загружает данные, если параметры не найдены, чем он всегда загружает эти данные, независимо от того, есть ли параметры или нет.
Я бы хотел НЕ загружать accessParameter (), пока система не будет готова к обработке параметров. ngAfterViewInit () не работал.