7

我不想从我的控制器 /plant/needs/temperatures?open=temperatures 打开以下 url,其中参数 open=temperatures 要求页面打开相关弹出窗口,代码如下:

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

不幸的是,我请求了这个 url #/plant/needs/temperatures%3Fopen=temperatures,问号被 %3F 取代,阻止了页面打开。

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

4

1 回答 1

13

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

你应该使用$location.urlwhich won't encode ?。因为它处理.path,.search.hash

$location.url(url);
于 2014-07-15T17:28:57.830 回答