2017-08-15 159 views
-1

我正在通過loadChildren("123#childModule")appModule加載模塊,它總是在瀏覽器中附加/#/Angular 2 - 從URL中刪除哈希(#)

我試過useHash : false以及Providers作爲PathLocationStrategy,但我仍然看到問題。

一直在做這方面的研究,但到目前爲止我沒有找到任何解決方案。任何想法?提前致謝。

+0

語法增強 – Fabien

+0

添加您app.routing.ts模塊的內容在這裏 – MondKin

+0

https://stackoverflow.com/a/46315140/2978923 – Deshak9

回答

1

你可以試試這個:

如果您正在使用角決賽,原因哈希可能是:

RouterModule.forRoot(yourRoutesHere, { useHash: true }) 

或使用此:

旁邊的模塊提供程序,檢查您的模塊導入,它也可以通過提供{useHash:true}作爲RouterModule.forRoot的第二個參數來覆蓋它:

imports: [ 
    ... 
    RouterModule.forRoot(routes, { useHash: true }) // remove second argument 
] 
0

首先,我相信你試圖用模塊 惰性加載的路由代碼應該是這樣的:

{ path: 'mgt', loadChildren: 'app/your-mgt/your-mgt.module#YourModule'} 

而且#顯示在您的網址無關的「#」在這裏。
默認情況下,角使用PathLocationStrategy已經

RouterModule.forRoot(routes) 

我想這是你的:

RouterModule.forRoot(routes, { useHash: true } or RouterModule.forRoot(routes, { useHash: false } 

不知道什麼是您的後端是,但如果你有一個,它會使用AJAX來獲取數據。 如果您在後端使用Express。 嘗試this

+0

李您好,感謝您的答覆。我們在URL中看到/#/只是在沒有服務調用的情況下加載靜態頁面本身。嘗試useHash:假但仍然沒有運氣。我們不確定在網址中加什麼#。我很喜歡角2,請幫助。 –

+0

@RajuCh你能告訴我你的app.module.ts文件嗎? –

+0

我想出它出錯的地方,我們製作的自定義庫使用Hashlocation策略。感謝您的支持和幫助。 –