2016-04-29 12 views
0

hashmodeのハッシュタグの配置を/#/から/#に編集することはできますか?角度Uiルートの 'hash url'を編集する

html5modeがサポート(古いブラウザIE9ダウンで)、私は私が得るものhash URL/hashbangモード

取得されていない:私は取得したいと思い何

'index.com/#/path/id' 

を:

'index.com/path/#id' 

角度アプリの設定内からhash-tagのURL /プレースメントを編集することはできますか?または、私はハッシュモードのために受け入れられない/無効なURLを欲しいですか?

答えて

0

はあなたがhistory APIをサポートしていないブラウザでURLから#を削除することはできませんルーターのページ

$locationProvider.html5Mode(true); 
+0

"html5modeが(古いブラウザダウンIE9とで)サポートされていない場合、私は 'ハッシュURL'/hashbangモードを取得" –

+0

このコードは質問に答えるかもしれませんが、_why_および/または_how_に関する追加のコンテキストを に提供すると、 に答えて、その質問は長期的には の値を大幅に改善します。あなたの答えを[編集]して、説明を加えてください。 –

0

にこのコードを追加します。 {boolean} - - (default: false)trueの場合、サポートされている場合、URLを変更するには history.pushStateに依存します有効

html5Modemode=true

From AngularJS Doc、。 pushStateをサポートしていないブラウザでは、 hash-prefixedのパスに戻ります。 history.pushStateが失敗した場合、それは古いURL値を復元

From $locationProvider source code、:

function setBrowserUrlWithFallback(url, replace, state) { 
     var oldUrl = $location.url(); 
     var oldState = $location.$$state; 
     try { 
     $browser.url(url, replace, state); 

     // Make sure $location.state() returns referentially identical (not just deeply equal) 
     // state object; this makes possible quick checking if the state changed in the digest 
     // loop. Checking deep equality would be too expensive. 
     $location.$$state = $browser.state(); 
     } catch (e) { 
     // Restore old values if pushState fails 
     $location.url(oldUrl); 
     $location.$$state = oldState; 

     throw e; 
     } 
    } 
+0

私はそれを削除したくない、私は投稿した例のようにURL内のその配置を編集したい。 'index.com/path/#id' –

+0

ベースURLの後に '#'が追加されます。あなたのベースURLは 'index.com'です。私は 'index.com/path /#id'を達成することはできないと思います。 –

関連する問題