Angular 有角度的9条路线,提供无错误的空白页
我刚刚升级到Angular 9,并使用延迟加载创建了一些子路由。在这些更改之前,我的项目和路由工作得很好,但在这两次更改之后,只有我的Angular 有角度的9条路线,提供无错误的空白页,angular,angular-ui-router,angular9,angular-routerlink,angular-ivy,Angular,Angular Ui Router,Angular9,Angular Routerlink,Angular Ivy,我刚刚升级到Angular 9,并使用延迟加载创建了一些子路由。在这些更改之前,我的项目和路由工作得很好,但在这两次更改之后,只有我的HomeComponent路由(路径:“”)工作正常,但如果我尝试单击指向其他路由的链接(使用routerLink),它根本不会重定向,如果我在浏览器中手动写入路由,它给了我一个没有错误的空白页 总而言之:项目和路由运行良好,但在我创建角度延迟加载路由后,唯一有效的路由是默认路由(HomeComponent),如果我尝试单击链接转到其他路由,则不会发生任何情况,如
HomeComponent
路由(路径:“”)工作正常,但如果我尝试单击指向其他路由的链接(使用routerLink),它根本不会重定向,如果我在浏览器中手动写入路由,它给了我一个没有错误的空白页
总而言之:项目和路由运行良好,但在我创建角度延迟加载路由后,唯一有效的路由是默认路由(HomeComponent),如果我尝试单击链接转到其他路由,则不会发生任何情况,如果我在浏览器中手动键入这些路由,则会显示一个空白页,不会出现任何错误
应用程序模块.ts
@NGD模块({
声明:[
应用组件,
HomeComponent,
],
进口:[
共享模块,
家庭模块,
Mugan86GoogleAnalyticsModule.forRoot({analyticsId:'XXX',showLog:false}),
AnimateOnScrollModule.forRoot(),
BrowserModule.withServerTransition({appId:'serverApp'}),
ServiceWorkerModule.register('ngsw-worker.js',{enabled:environment.production}),
],
供应商:[
{提供:ErrorHandler,useClass:RollbarErrorHandler},
{提供:RollbarService,使用工厂:rollbarFactory}
],
引导:[AppComponent],
出口:[
共享模块,
家庭模块,
]
})
导出类AppModule{
}
共享的.module.ts
@NgModule({
声明:[
页脚组件,
加载球组件,
导航组件,
滚动的直接的,
trackscroll指令,
顶部箭头组件,
SnackbarComponent,
],
进口:[
浏览器模块,
路由模块,
批准模块,
BrowserAnimationsModule,
公共模块,
过滤器模块,
反应形式模块,
FormsModule,
重述小室模块,
动画滚动模块
],
出口:[
浏览器模块,
公共模块,
页脚组件,
加载球组件,
导航组件,
过滤器模块,
批准模块,
反应形式模块,
FormsModule,
重述小室模块,
动画模块,
滚动的直接的,
trackscroll指令,
顶部箭头组件,
SnackbarComponent,
路由模块,
BrowserAnimationsModule]
})
导出类共享模块{
}
home.module.ts
@NgModule({
声明:[
特性组件,
联系人组件,
头部组件,
主要说明组件,
影响者促进组分,
社会中介组织,
BoxItemComponent,
BandIconComponent,
服务组件,
],
进口:[
共享模块,
],
出口:[
特性组件,
联系人组件,
头部组件,
主要说明组件,
影响者促进组分,
社会中介组织,
BoxItemComponent,
BandIconComponent,
服务组件
]
})
导出类HomeModule{}
应用程序路由.module.ts
导出常量路由:路由=[
{路径:'',路径匹配:'full',组件:HomeComponent},//未指定路由
{路径:'',组件:HomeComponent},
{path:'sobre nosotros',loadChildren:()=>import('./components/about-us/about-us.module')。然后(m=>m.aboutus-module)},
{
路径:“preguntas frecuentes”,
loadChildren:()=>import('./组件/常见问题/常见问题.module')。然后(m=>m.CommonQuestionsModule)
},
{path:'sitemap',loadChildren:()=>import('./components/sitemap/sitemap.module')。然后(m=>m.SitemapModule)},
{路径:'**',组件:HomeComponent},//回退路由(未找到-404)
];
@NGD模块({
导入:[RouterModule.forRoot(路由,{initialNavigation:'enabled',Preload策略:Preload AllModules}],
导出:[路由模块]
})
导出类批准模块{
}
作为一个示例,我将显示其中一条不起作用的路由的模块和路由模块: 关于美国模块。ts
@NgModule({
声明:[关于组件],
进口:[
应用模块,
公共模块,
关于路由模块,
]
})
导出类aboutus模块{}
关于我们的路由.module.ts
const-routes:routes=[{path:'',组件:AboutUsComponent}];
@NGD模块({
导入:[RouterModule.forChild(路由)],
导出:[路由模块]
})
导出类AboutRoutingModule{
}
额外信息 tsconfig.json(angularCompilerOptions) angular.json(aot) package.json(查看版本)
我有另一个项目使用常春藤和子路由,我只是按照我所提到的项目所做的相同步骤,但我发现了所描述的问题 编辑
我刚刚删除了延迟加载和每个路由的模块/路由模块,应用程序再次工作。因此,问题肯定是由延迟加载功能造成的。请删除前两个主路由(HomeComponent) 在app-routing.module中,您可以通过以下方式启用路由调试:
@NgModule({
imports: [
RouterModule.forRoot(routes, {enableTracing: true}),
也许您可以删除{initialNavigation:'enabled',PrelodingStrategy:PreloadAllModules}
你的代码看起来不错。我希望调试能给你更多的信息
AppRoutingModule只能在AppModule中使用。不允许在一个延迟加载的子模块中引用AppRoutingModule
在AppModule中导入BrowserModule、BrowserAnimationsModule和AppRoutingModule
尽量避免使用大型共享模块。请参阅:禁用常春藤选项并检查。它和我一起工作
“enableIvy”:false,
我看不出问题,只是想帮助(:这两条路径:{path:'',pathMatch:'full',component:HomeComponent}
和{path:'',component:HomeComponent}
看起来像是重复的。我想只有一条
"aot": true,
"dependencies": {
"@angular/animations": "~9.1.9",
"@angular/common": "~9.1.9",
"@angular/compiler": "~9.1.9",
"@angular/core": "~9.1.9",
"@angular/forms": "~9.1.9",
"@angular/platform-browser": "~9.1.9",
"@angular/platform-browser-dynamic": "~9.1.9",
"@angular/platform-server": "~9.1.9",
"@angular/router": "~9.1.9",
"@angular/service-worker": "~9.1.9",
"@josee9988/filter-pipe-ngx": "^1.1.0",
"@nguniversal/express-engine": "^9.1.1",
"animate.css": "^3.7.2",
"emailjs-com": "^2.4.1",
"express": "^4.15.2",
"mugan86-ng-google-analytics": "^1.1.1",
"ng-recaptcha": "^5.0.0",
"ng2-animate-on-scroll": "^2.0.0",
"rollbar": "^2.16.2",
"rxjs": "~6.5.5",
"tslib": "^1.13.0",
"zone.js": "~0.10.2"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.901.7",
"@angular/cli": "~9.1.7",
"@angular/compiler-cli": "~9.1.9",
"@angular/language-service": "~9.1.9",
"@nguniversal/builders": "^9.1.1",
"@types/express": "^4.17.0",
"@types/jasmine": "~3.3.8",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^12.11.1",
"codelyzer": "^5.1.2",
"jasmine-core": "~3.4.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "^5.0.9",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~2.0.1",
"karma-jasmine-html-reporter": "^1.5.4",
"protractor": "^7.0.0",
"ts-node": "~7.0.0",
"tslint": "~5.15.0",
"typescript": "~3.8.3"
@NgModule({
imports: [
RouterModule.forRoot(routes, {enableTracing: true}),