Я использую Angular 7 + роутер. Например, моя домашняя страница - localhost:4200
, один из URL моего маршрутизатора - localhost:4200/route
, и у меня есть конечная точка API на localhost:4200/api/foo
.
Я пытаюсь позволить браузеру загрузить конечную точку API из обоих мест. Если я поставлю якорь с помощью href, указывающего на конечную точку API, обе ссылки будут работать отлично. Тем не менее, мне нужно сделать это программно, и я попробовал все следующие методы
window.open("localhost:4200/api/foo","_self")
window.location.replace('localhost:4200/api/foo');
window.location.href = 'localhost:4200/api/foo';
Они все работают на домашней странице, но если я нахожусь на странице роутера, это приведет меня к домашней странице.
Любая помощь очень ценится!
Если говорить точнее, у меня есть сервер весенней загрузки с шаблонами URL, такими как / api / *. Все остальные URL обрабатываются угловыми. Я хочу, чтобы браузер загрузил localhost:4200/api/foo
, что напрямую обрабатывается запросом get, определенным на сервере
Демо-версия:
Моя навигационная панель является компонентом и остается неизменной независимо от маршрутизатора.
Код для нажатия этой кнопки ниже. Обратите внимание, что в первый раз, когда я нажимаю на него под каким-то угловым перенаправленным URL, он загружает домашнюю страницу, а не google.com
onLogIn() {
window.open('https://www.google.com',"_self");
}
Routing.ts file
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { IndexComponent } from "./index/index.component";
import { MicroserviceComponent } from "./microservice/microservice.component";
const routes: Routes = [
{ path: '', component: IndexComponent},
{ path: 'microservice/:id', component: MicroserviceComponent}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }