使用路由器时的角度加载网址

我正在使用Angular 7 +路由器。例如,我的主页是localhost:4200,我的路由器的网址之一是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';

它们都可以在主页上工作,但是如果我在路由器页面上,那么这样做将带我进入主页。


任何帮助是极大的赞赏!


具体来说,我有一个带有/ api / *之类的url模式的spring boot服务器。所有其他网址均由角度处理。我希望浏览器加载localhost:4200/api/foo,这是由服务器中定义的get请求直接处理的


演示:


我的导航栏是一个组件,无论路由器如何,它都保持不变。单击该按钮后的代码如下。请注意,我第一次在某个Angular路由网址下单击它时,它将加载主页,而不是google.com


onLogIn() {

    window.open('https://www.google.com',"_self");

}

Routing.ts文件


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 { }


繁花不似锦
浏览 127回答 1
1回答

蓝山帝景

将pathMatch添加到您的空路径,这就是为什么您被重定向到home组件的原因const routes: Routes = [ { path: '', component: IndexComponent, pathMatch:'full'}, { path: 'microservice/:id', component: MicroserviceComponent}];
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript