angularjs - $location 改变 ?参数分隔符

标签 angularjs angularjs-ng-route

我不想从我的 Controller /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 替换了问号,阻止了页面打开。

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

最佳答案

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

您应该使用 $location.url 不会编码 ? .因为它处理了.path的变化, .search.hash

$location.url(url);

关于angularjs - $location 改变 ?参数分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24764330/

相关文章:

angularjs - 是否可以在 ngRoute angularjs 中使用多个 View 或嵌套 View ?

javascript - ASP .NET 5 中的简单 Angular SPA - 启动时出现空白页

javascript - ng-show 和 ng-change 不必要的延迟

angularjs - 当我在 Controller 中注入(inject) ui-router resolve 时,Karma 测试失败

javascript - 在 angular.js 中显示数组

javascript - 如何使用 $routeProvider 在 Angular 中更改页面标题

javascript - 单击 "Cancel"按钮后的 SweetAlert 调用代码

javascript - 将数组列表复制到另一个数组列表

javascript - 名称为 '..' 的 Controller 未注册

javascript - 使用 $routeParams,CSS 不会加载