要在Angular中实现首页重定向带有查询参数的URL,可以按照以下步骤进行操作:
在项目的根目录下打开src/app
文件夹,并创建一个名为redirect
的组件。
在redirect.component.ts
文件中,编写以下代码:
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
@Component({
template: ''
})
export class RedirectComponent implements OnInit {
constructor(private router: Router) { }
ngOnInit() {
const queryParams = window.location.search;
this.router.navigate(['/home'], { queryParams });
}
}
redirect.component.spec.ts
文件中,编写以下代码:import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { RedirectComponent } from './redirect.component';
describe('RedirectComponent', () => {
let component: RedirectComponent;
let fixture: ComponentFixture;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [RouterTestingModule],
declarations: [RedirectComponent]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(RedirectComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
app-routing.module.ts
文件中,添加一个重定向路由:import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { RedirectComponent } from './redirect/redirect.component';
const routes: Routes = [
{ path: '', component: RedirectComponent },
{ path: 'home', component: HomeComponent },
// 其他路由配置
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
app.module.ts
文件中,将RedirectComponent
添加到declarations
数组中:import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { RedirectComponent } from './redirect/redirect.component';
@NgModule({
declarations: [
AppComponent,
RedirectComponent
],
imports: [
BrowserModule,
AppRoutingModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
现在,当用户访问根URL时,将会重定向到/home
路由,并携带原始URL中的查询参数。