我需要在打開新窗口並導航到某個狀態後修改URL。在Angular環境中替換URL
我的起始頁看起來像這樣:
localhost:8000/startpage.html
。
當它加載的URL變成
localhost:8000/startpage.html#/
。
在新窗口中,我正在導航到一個新狀態:
localhost:8000/startpage.html#/newstate
。
我想要的是這樣的網址:
localhost:8000/startpage.html?project=1#/newstate
。
我得到幾乎正確的結果,只是不用更換URL完全把它添加
?project=1#/newstate
到localhost:8000/startpage.html#/
。
所以結果是這樣的:
localhost:8000/startpage.html#/%3Fproject=903%23/newstate
而我需要的是:
localhost:8000/startpage.html?project=903#/newstate
下面是一些相關的代碼:
if ($window.history.replaceState) {
var newUrl = '?project=903' + '#/case';
$location.path(newUrl);
$location.replace();
};
在我看來,我有兩個問題。在'.html'之後加上'#/',並對URL進行編碼。因爲即使我刪除了多餘的'#/',它仍然不起作用,除非我用真正的字符替換編碼的字符。 請幫忙。
感謝
它不是真正清楚你正試圖在這裏完成的。'#'表示由Angular處理的部分與由服務器處理的部分。一個類似於'localhost:8000/startpage.html?project = 1#/ newstate'的URL表明你想要發送'project = 1'到你的服務器並讓它發回一個新的頁面,這個頁面會有一個新的角度應用,然後將其引導至「新國家」。這看起來相當麻煩...... – Claies