Angular 2 - 从URL中删除哈希(#)

时间:2017-08-15 15:46:09

标签: angular2-routing

我从loadChildren("123#childModule") appModule加载模块,并且始终在浏览器中附加/#/

我已尝试useHash : false以及Providers作为PathLocationStrategy,但我仍然看到了问题。

对此进行了研究但到目前为止我没有找到任何解决方案。任何的想法?提前谢谢。

3 个答案:

答案 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);