Можем ли мы установить APP_BASE_HREF в angular 6 динамически, получая значение из http-вызова в службе? - PullRequest
0 голосов
/ 31 октября 2018

Это код из файла app.module.ts

{
  provide: APP_BASE_HREF,
  useFactory: referalCodeValidator,
  deps: [ValidatorService]
}

В самом файле app.module.ts определена функция referalCodeValidator

export function referalCodeValidator(common: ValidatorService) {
  let path = location.pathname;
  let refCode = path.split("/", 2);
  return common.validateReferralCode(refCode[1]);
}

Служба валидатора выглядит следующим образом:

import { Injectable } from "@angular/core";
import { Observable } from "rxjs";
import { environment } from "../../environments/environment";
import { HttpClient } from "@angular/common/http";
import { tap, catchError } from "rxjs/operators";

@Injectable()
export class ValidatorService {
  appBaseHref: any;
  constructor(private http: HttpClient) {}

  validateReferralCode(refCode): Observable<any> {
    if (refCode != "" || refCode != null) {
      this.appBaseHref = null;
      return this.http
        .get(someurl, {
          params: {
            referenceCode: refCode
          }
        })

        .pipe(catchError((error, caught) => {
          console.log(error);
          throw error.error;
        }) as any);
      }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...