$ location改变了吗?参数分隔符

时间:2014-07-15 17:17:39

标签: angularjs angularjs-ng-route

我不想从我的控制器/工厂/需要/温度打开以下网址?open = temperature,其中参数open = temperature是要求页面打开相关弹出窗口,代码如下:< / p>

$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>

不幸的是,我有这个网址#/ plant / needs / temperature%3Fopen =请求的温度,问号被%3F替换,阻止页面打开。

有什么想法解决这个问题吗?

1 个答案:

答案 0 :(得分:9)

如果您尝试使用$location.path获取当前路径,它将返回没有查询字符串的路径,因为$location.path不理解它们。这就是为什么它在追加新路径时对其进行编码。

您应该使用不会编码?的{​​{3}}。因为它处理.path.search.hash

的更改
$location.url(url);