我从loadChildren("123#childModule")
appModule
加载模块,并且始终在浏览器中附加/#/
。
我已尝试useHash : false
以及Providers
作为PathLocationStrategy
,但我仍然看到了问题。
对此进行了研究但到目前为止我没有找到任何解决方案。任何的想法?提前谢谢。
答案 0 :(得分:1)
你可以试试这个:
如果您使用的是Angular final,则哈希的原因可能是:
RouterModule.forRoot(yourRoutesHere, { useHash: true })
或使用此:
在模块提供程序旁边,检查模块导入,也可以通过提供{useHash:true}作为RouterModule.forRoot的第二个参数来覆盖它:
imports: [
...
RouterModule.forRoot(routes, { useHash: true }) // remove second argument
]
答案 1 :(得分:0)
首先,我相信你正在尝试使用模块进行延迟加载 路线代码应如下所示:
{ path: 'mgt', loadChildren: 'app/your-mgt/your-mgt.module#YourModule'}
你网址上的#显示与"#"无关。这里。
默认情况下,Angular已使用PathLocationStrategy
RouterModule.forRoot(routes)
我想这是你的:
RouterModule.forRoot(routes, { useHash: true } or RouterModule.forRoot(routes, { useHash: false }
不确定你的后端是什么,但如果你有后端,它将使用ajax来获取数据。 如果您在后端使用Express。 试试this
答案 2 :(得分:0)
您可以尝试以下操作: RouterModule.forRoot(appRoutes,{useHash:false});
或删除useHash: RouterModule.forRoot(appRoutes);