0

下面是代码片段:

从“@angular/router”导入{路由器};从“@angular/common/http”导入 { HttpClient };从“../../environments/environment”导入{环境};从“@angular/common”导入{位置、位置策略、路径位置策略};

@Injectable()
export class CommonServicesService {
    PathLocation: Location;
    referralCode: any = localStorage.getItem('referenceCode');

    constructor(
        location: Location,
    ) {
        this.PathLocation = location;
    }

    redirectAfterSuccessfulLogin() {
        if (localStorage.getItem("redirectUrl")) {
            let url = localStorage.getItem("redirectUrl");
            localStorage.removeItem("redirectUrl");
            this.PathLocation.prepareExternalUrl("'/'+this.referralCode"); //is this the correct way?
            console.log(this.PathLocation);
            this.router.navigate([url]);
        } else {
            this.PathLocation.prepareExternalUrl("'/'+this.referralCode");
            console.log(this.PathLocation);
            this.router.navigate(["/"]);
        }
    }
}
4

1 回答 1

-1

你可以做这样的事情:

  1. 创建一个以代码为参数的 baseUrl 函数。
  2. 登录后根据条件调用该函数,这将为您提供更新的URL

像这样:

getBaseUrl = function(code){
return `localhost:3000/${code}`
}

现在您可以将其用作:

getBaseURl(1234)

它返回:“本地主机:3000/1234”

现在您可以在此 URL 之后添加更多路径。

例子

或者

您可以对两个 URL 进一步使用相同的功能,如下所示:

 getBaseUrl = function(code){

    if(code == 0000) return localhost:3000
    else return `localhost:3000/${code}`

}

现在,每当您调用该函数时,您必须为非登录条件 Base Url传递0000和 4 位代码以获取登录后的基本 URL

getBaseURl(1234) // for login one

getBaseURl(0000) // for non-login one
于 2018-05-25T08:04:58.860 回答