Изменение базового href при угловой навигации

При создании моего углового приложения с использованием ng build я предоставил флаг --base-href для своего приложения как foo. Таким образом, URL-адрес моего приложения выглядит как https://10.10.10.19:8080/foo. Однако я хочу перейти на страницу, на которой вместо URL-адреса есть панель, т.е. /бар.

Я пробовал router.navigateByUrl('/bar'), но он создает URL-адрес https://10.10.10.19:8080/foo/bar это не то, что я ищу.

Может ли кто-нибудь помочь мне с тем, что здесь отсутствует или идет не так?


person Naman Arora    schedule 05.12.2018    source источник
comment
покажи мне свой код   -  person ram12393    schedule 05.12.2018
comment
Вместо того, чтобы быть конкретным, покажите нам свои файлы маршрутизации. А также попробуйте изменить baseHref=/ в index.html   -  person KiraAG    schedule 05.12.2018
comment
Настройка базы для вашего приложения объясняется в статье, которую я опубликовал, надеюсь, это поможет вам: joeljoseph.net/   -  person Joel Joseph    schedule 05.12.2018


Ответы (3)


Не уверен после сборки, но во время разработки я использую следующий код, и он работает для меня.

this.router.navigate(['../bar'], { relativeTo: this.route });
person R. Viral    schedule 05.12.2018
comment
Что это за .route здесь? Вы говорите об экземпляре ActivatedRoute? - person Naman Arora; 05.12.2018
comment
Сейчас я нахожусь по URL-адресу 10.10.10.19:8080/foo/a1 и хочу перейти на 10.10.10.19:8080/bar/b2. С тем, что вы предложили, я попробовал то же самое с this.router.navigate(['../../bar/b1'], { relativeTo: this.route }); Но то же самое не удалось с недопустимым числом '../'. Есть мысли по этому поводу? - person Naman Arora; 05.12.2018

В основном вы хотите, чтобы ваш базовый href устанавливался динамически, поскольку вы не можете удалить только базовый href (AFAIK).

Импортировать base_HREF в main.ts

import { APP_BASE_HREF } from '@angular/common';

и установите своих провайдеров, как показано ниже

providers: [
    {
        provide: APP_BASE_HREF,
        useValue: '/' + (window.location.pathname.split('/')[1] || '')
    }
]

кредит на эту ссылку: эта ссылка может быть полезна: Angular 2/4 / 5 - Установить базовый href динамически

person T. Shashwat    schedule 05.12.2018

Этого можно добиться с помощью внедрения зависимостей или с помощью httpInterceptors.

Я надеюсь, что приведенная ниже ссылка поможет вашему вопросу. http://www.projectcodify.com/angular-set-base-url-dynamically

person Padmapriya Vishnuvardhan    schedule 05.12.2018