Angular 2 - 从 URL 中删除哈希 (#)
Angular 2 - Remove Hash (#) from the URL
我正在通过 loadChildren("123#childModule")
从 appModule
加载模块,它总是在浏览器中附加 /#/
。
我已尝试 useHash : false
以及 Providers
和 PathLocationStrategy
,但我仍然看到问题。
一直在研究这个问题,但到目前为止我还没有找到任何解决方案。任何的想法?提前致谢。
首先,我相信您正在尝试使用模块进行延迟加载
路由代码应该是这样的:
{ path: 'mgt', loadChildren: 'app/your-mgt/your-mgt.module#YourModule'}
而您url上显示的#与此处的“#”无关。
默认情况下,Angular 已经使用 PathLocationStrategy
RouterModule.forRoot(routes)
我猜这是你的:
RouterModule.forRoot(routes, { useHash: true } or RouterModule.forRoot(routes, { useHash: false }
不确定您的后端是什么,但如果您有后端,它将使用 ajax 来获取数据。
如果您在后端使用 Express。
尝试
你可以试试这个:
如果您使用的是 Angular final,散列的原因可能是:
RouterModule.forRoot(yourRoutesHere, { useHash: true })
或者使用这个:
除了模块提供者,检查你的模块导入,它也可以通过提供 { useHash: true } 作为 RouterModule.forRoot:
的第二个参数来覆盖
imports: [
...
RouterModule.forRoot(routes, { useHash: true }) // remove second argument
]
你可以试试这个:
RouterModule.forRoot(appRoutes, {useHash:false} );
或删除 useHash :
RouterModule.forRoot( appRoutes );
我正在通过 loadChildren("123#childModule")
从 appModule
加载模块,它总是在浏览器中附加 /#/
。
我已尝试 useHash : false
以及 Providers
和 PathLocationStrategy
,但我仍然看到问题。
一直在研究这个问题,但到目前为止我还没有找到任何解决方案。任何的想法?提前致谢。
首先,我相信您正在尝试使用模块进行延迟加载 路由代码应该是这样的:
{ path: 'mgt', loadChildren: 'app/your-mgt/your-mgt.module#YourModule'}
而您url上显示的#与此处的“#”无关。
默认情况下,Angular 已经使用 PathLocationStrategy
RouterModule.forRoot(routes)
我猜这是你的:
RouterModule.forRoot(routes, { useHash: true } or RouterModule.forRoot(routes, { useHash: false }
不确定您的后端是什么,但如果您有后端,它将使用 ajax 来获取数据。
如果您在后端使用 Express。
尝试
你可以试试这个:
如果您使用的是 Angular final,散列的原因可能是:
RouterModule.forRoot(yourRoutesHere, { useHash: true })
或者使用这个:
除了模块提供者,检查你的模块导入,它也可以通过提供 { useHash: true } 作为 RouterModule.forRoot:
的第二个参数来覆盖imports: [
...
RouterModule.forRoot(routes, { useHash: true }) // remove second argument
]
你可以试试这个:
RouterModule.forRoot(appRoutes, {useHash:false} );
或删除 useHash :
RouterModule.forRoot( appRoutes );