2014-07-15 39 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

你为我节省了太多的痛苦。非常感谢。 –