我有一个要加载两种类型数据的应用程序(数据A,数据B)。 我想在其中显示数据的三个变体。
如果参数A->加载数据A
如果参数B->加载数据B
如果没有参数->加载数据A
我有两个函数validateParameters(),它们调用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;
}
如果我在ngOnInit或构造函数中加载accessParameters(),它似乎要加载两次。最初,即使没有参数,也好像没有参数一样进行响应,然后第二次处理参数。
如果我有参数,一切都会按预期进行。但是,如果我没有参数,它将不会加载任何数据。 IF,如果没有找到参数,我会放入任何逻辑来加载数据,而无论是否有参数,它总是会加载数据。
在系统准备处理参数之前,我希望不能加载accessParameter()。 ngAfterViewInit()无法正常工作。