Angular对某些路由移除了base-href。
创始人
2024-10-24 15:31:41
0

在使用 Angular 路由时需要注意,如果在根模块中设置了 base-href,在使用 loadChildren 懒加载模块时会移除这个 base-href,导致路由无法正确匹配。因此需要在懒加载模块中重新设置 base-href。

示例代码:

// app.module.ts @NgModule({ imports: [ CommonModule, RouterModule.forRoot(routes, { initialNavigation: 'enabled', relativeLinkResolution: 'legacy', }), ], }) export class AppModule {}

// lazy.module.ts @NgModule({ imports: [ CommonModule, RouterModule.forChild([ { path: '', component: LazyComponent, children: [ { path: 'child', component: LazyChildComponent, data: { baseHref: '/lazy', }, }, ], }, ]), ], }) export class LazyModule { constructor( private router: Router, private activatedRoute: ActivatedRoute ) { this.router.events .pipe(filter((e) => e instanceof NavigationEnd)) .subscribe(() => { const { root } = this.activatedRoute; const { baseHref } = root.firstChild.snapshot.data; if (baseHref) { const base = document.createElement('base'); base.href = baseHref; const head = document.getElementsByTagName('head')[0]; head.insertBefore(base, head.firstChild); } }); } }

上述代码中,我们在路由配置中加入了一个 data 属性,用来存储每个子路由需要设置的 base-href。在 LazyModule 的 constructor 中通过订阅路由事件,在路由变化时手动插入新增的 base 标签来设置 base-href。这个方法可以避免 Angular 移除 base-href 导致的路由匹配问题。

相关内容

热门资讯

今日焦点!互游辅助,大懒人斗十... 今日焦点!互游辅助,大懒人斗十四辅助,线上教程(真是有挂)-哔哩哔哩;最新版2026是一款经典耐玩的...
透视脚本!潮汕汇游戏辅助,we... 潮汕汇游戏辅助开挂教程视频分享装挂详细步骤在当今的网络游戏中,潮汕汇游戏辅助作为一种经典的娱乐方式,...
透视智能ai!牛总管辅助免费版... 透视智能ai!牛总管辅助免费版,欢聚水鱼脚本,细节揭秘(有挂头条)-哔哩哔哩>>您好:软件加1367...
我来教大家!天酷互娱有辅助工具... 较多好评“微乐万能挂官网”开挂(透视)辅助教程 了解更多开挂安装加(136704302)微信号是一款...
透视辅助!美猴王房卡辅助,wp... 透视辅助!美猴王房卡辅助,wpk安卓下载辅助,科技教程(有挂方法)-哔哩哔哩 了解更多开挂安装加(1...
重大通报!功夫川嘛辅助器是真的... 重大通报!功夫川嘛辅助器是真的假的,三加一免费辅助,软件教程(有挂存在)-哔哩哔哩;无需打开直接搜索...
推荐几款新版!蜀山挂件辅助,天... 您好:这款天天爱柳州辅助游戏是可以开挂的,确实是有挂的,很多玩家在这款天天爱柳州辅助游戏中打牌都会发...
一分钟揭秘!财神辅助模拟器,赣... 一分钟揭秘!财神辅助模拟器,赣牌圈挂安装图解,详细教程(有挂助手)-哔哩哔哩 了解更多开挂安装加(1...
我来教大家!微信小程序透视挂,... 我来教大家!微信小程序透视挂,道游互娱辅助,AI教程(确实有挂)-哔哩哔哩【无需打开直接搜索加薇13...
透视科技!潮友会辅助器,新广西... 透视科技!潮友会辅助器,新广西老友辅助,线上教程(有挂助手)-哔哩哔哩 >>您好:软件加薇13670...