Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular6 我们可以通过从服务中的http调用获取值来动态设置angular 6中的APP_BASE_HREF吗?_Angular6_Angular Universal_Server Side Rendering - Fatal编程技术网

Angular6 我们可以通过从服务中的http调用获取值来动态设置angular 6中的APP_BASE_HREF吗?

Angular6 我们可以通过从服务中的http调用获取值来动态设置angular 6中的APP_BASE_HREF吗?,angular6,angular-universal,server-side-rendering,Angular6,Angular Universal,Server Side Rendering,这是app.module.ts文件中的代码 { provide: APP_BASE_HREF, useFactory: referalCodeValidator, deps: [ValidatorService] } app.module.ts文件本身中定义了一个ReferalDevalidator函数 export function referalCodeValidator(common: ValidatorService) { let path = location.pat

这是app.module.ts文件中的代码

{
  provide: APP_BASE_HREF,
  useFactory: referalCodeValidator,
  deps: [ValidatorService]
}
app.module.ts文件本身中定义了一个ReferalDevalidator函数

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);
      }
    }
}
从“@angular/core”导入{Injectable};
从“rxjs”导入{observeable};
从“../../environments/environment”导入{environment}”;
从“@angular/common/http”导入{HttpClient};
从“rxjs/operators”导入{tap,catchError};
@可注射()
导出类验证服务{
appBaseHref:any;
构造函数(私有http:HttpClient){}
ValidateFerralCode(参考代码):可观察{
if(refCode!=“”| | refCode!=null){
this.appBaseHref=null;
返回此文件。http
.get(someurl{
参数:{
referenceCode:refCode
}
})
.pipe(catchError)(错误,捕获)=>{
console.log(错误);
抛出错误;
})(如有的话);
}
}
}