AngularJS应用程序正在升级到Angular9。路由行为很奇怪:在导航栏中单击具有类似/test
的url的链接后,导航栏中的URL更改为localhost:9000/test
,但在不到一秒钟的时间内更改为localhost:9000
显示正确的Test
页面,但由于网址错误,后退按钮不起作用。
将entryComponents: [AppComponent]
更改为bootstrap: [AppComponent]
时,问题消失了,但是在这种情况下,无法升级组件。似乎Angularjs和Angular9路由存在冲突,但不确定如何解决。
应用程序模块
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { UpgradeModule } from '@angular/upgrade/static';
import { LocationUpgradeModule } from '@angular/common/upgrade';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { HomeComponent } from './components/home/home.component';
import { TestComponent } from './components/test/test.component';
@NgModule({
declarations: [
AppComponent,
HomeComponent,
TestComponent,
],
imports: [
BrowserModule,
FormsModule,
UpgradeModule,
AppRoutingModule,
LocationUpgradeModule.config({})
],
entryComponents: [AppComponent],
providers: [
{ provide: '$scope', useExisting: '$rootScope' },
],
// bootstrap: [AppComponent]
})
export class AppModule {
constructor(private upgrade: UpgradeModule) {}
public ngDoBootstrap(app: any): void {
this.upgrade.bootstrap(document.body, ['OldApp'], { strictDi: true });
app.bootstrap(AppComponent);
}
}
应用路由器
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HomeComponent } from './components/home/home.component';
import { TestComponent } from './components/test/test.component';
const appRoutes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'test', component: TestComponent },
];
@NgModule({
imports: [
RouterModule.forRoot(appRoutes)
],
exports: [RouterModule]
})
export class AppRoutingModule {}