如何在加载数据之前等待参数?

时间:2020-06-19 21:08:38

标签: angular ngoninit

我有一个要加载两种类型数据的应用程序(数据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()无法正常工作。

0 个答案:

没有答案