角度升级路由冲突

时间:2020-06-23 12:27:06

标签: angularjs angular angular-routing angular-upgrade

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

0 个答案:

没有答案