gpt4 book ai didi

javascript - 使用路由器时的 Angular 加载 url

转载 作者:行者123 更新时间:2023-12-02 23:46:09 25 4
gpt4 key购买 nike

我使用 Angular 7 + 路由器。比如我的主页是localhost:4200 ,我的路由器的网址之一是 localhost:4200/route我有一个 API 端点 localhost:4200/api/foo .

我试图让浏览器从两个位置加载 api 端点。如果我放置一个带有 href 的 anchor 指向 API 端点,则两个 anchor 链接都可以完美工作。但是,我需要以编程方式执行此操作,并且我已经尝试了以下所有方法

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 服务器。所有其他 url 均由 Angular 处理。我希望浏览器加载localhost:4200/api/foo ,由服务器中定义的get请求直接处理

演示:

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

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

路由.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 { }

最佳答案

将 pathMatch 添加到您的空路由中,缺少它,这就是您被重定向到主页组件的原因

const routes: Routes = [
{ path: '', component: IndexComponent, pathMatch:'full'},
{ path: 'microservice/:id', component: MicroserviceComponent}
];

关于javascript - 使用路由器时的 Angular 加载 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55857726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com