对$ location服务的更改未反映到浏览器地址栏中

时间:2017-10-16 12:34:35

标签: angularjs location

我有一个如下功能,用于路由到特定页面。这里的问题是$location.url(url).search(search);正在执行,我可以看到调试器中反映的更改,但更改没有反映到浏览器地址栏中。

var routeToPage = function (page, search) {
    if (angular.isDefined(page) && null !== page) {
        var url = page;
        url = url.substring(url.length-1) === '/'? url.substring(0, url.length-1): url;
        $timeout(function () {
            if (search) {
                $location.url(url).search(search);

            } else {
                $location.url(url);
            }
        });
    }
};

我尝试$window.location.assign(url);并且工作正常,但我也需要搜索参数。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

$scope.apply

之后添加$location.url(url).search(search);