Как использовать pathlocationstrategy в angular 5 для установки базового href или APP_BASE_HREF? - PullRequest
0 голосов
/ 25 мая 2018

Ниже приведен фрагмент кода:

import {Router} из "@ angular / router";import {HttpClient} из "@ angular / common / http";import {environment} из "../../environments/environment";import {Location, LocationStrategy, PathLocationStrategy} из '@ 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(["/"]);
        }
    }
}

1 Ответ

0 голосов
/ 25 мая 2018

Вы можете сделать что-то вроде этого:

  1. Создать функцию baseUrl, которая принимает код в качестве параметра.
  2. Вызовите эту функцию в соответствии с условием после входа в систему, это дастВы обновили URL

следующим образом:

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

Теперь вы можете использовать его как:

getBaseURl(1234)

Возвращает: "localhost:3000/1234 "

Теперь вы можете добавить дополнительный путь после этого URL.

Example

ИЛИ

вы можете в дальнейшем использовать одну и ту же функцию для обоих URL, как это:

 getBaseUrl = function(code){

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

}

теперь, когда вы вызываете функцию, вы должны передать 0000 для неБазовый URL для входа в систему и 4-значный код для получения базового URL-адреса после входа в систему

getBaseURl(1234) // for login one

getBaseURl(0000) // for non-login one
...