角。 $ location.search无法更新浏览器地址栏

时间:2016-04-28 12:07:41

标签: angularjs

也许你们其中一个人知道我们的angularjs应用程序出了什么问题(不幸的是我无法分享代码)。

我们做什么:

  • 我们称之为$ location.search(params1) =>浏览器地址栏中没有任何内容发生。
  • 在下一步中我们调用$ location.search(params2) =>现在我们看到浏览器地址栏已更改,但是params1而不是params2 ......等等。

有人为我们提供线索吗?

2 个答案:

答案 0 :(得分:0)

你是如何触发$ location.search()函数的?

听起来你可能需要在触发$ location.search()之后调用$ scope。$ digest()但我无法用你的例子说出来。

答案 1 :(得分:0)

请参阅$ location.search如何工作的这个工作示例:

var myApp = angular.module('myApp', []);

function MyCtrl($scope, $location) {

    $scope.location = $location;
    $scope.$watch('location.search()', function() {
        $scope.target = ($location.search()).target;
    }, true);

    $scope.changeTarget = function(name) {
        $location.search('target', name);
    }
}

https://jsfiddle.net/pvffcfq6/

您可能需要在代码中的某处运行$ scope.digest吗?