2014-07-15 37 views
3

我不想從我的控制器/工廠/需求/溫度打開以下URL?open =溫度,其中參數open =溫度是要求頁面打開代碼的相關彈出窗口,如下所示:

$scope.openPageUrl = function (url) { 
    closePopover(); 
    console.log("Open page url "+url); 
    $location.path(url); 
}; 

<a ng-click="openPageUrl('/plant/needs/temperatures?open=temperatures')">Click to open</a> 

不幸的是,我有這個網址#/工廠/需求/溫度%3Fopen =溫度要求,由%3F取代問號,防止頁面打開。

任何想法解決這個問題?

+0

的變化看起來像字符串被服務器端的編碼。你使用什麼樣的服務器? – Edminsson

+0

嘗試'$ location.path(decodeURIComponent(url));' – Ronnie

+0

它是本地的(file://) –

回答

5

如果您嘗試使用$location.path獲取當前路徑,它將返回無查詢字符串的路徑,因爲$location.path不理解它們。所以這就是爲什麼在追加新路徑時對其進行編碼。

您應該使用$location.url這將不會編碼?。因爲它處理的.path.search.hash

$location.url(url); 
+0

你爲我節省了太多的痛苦。非常感謝。 –