无法使用$ location.search()更新URL参数

时间:2015-05-16 14:39:52

标签: javascript angularjs

我尝试将默认参数应用于网址(如果它们不存在)。接下来,我将URL params复制到局部变量($scope.params),然后加载内容:

// If limit and sort params are defined
if ($location.search().hasOwnProperty('limit') && $location.search().hasOwnProperty('sort')) {
    // Update scope params
    $scope.params = $location.search();

    // Load content
    $scope.loadContent();
} else {
    // Merge URL params and scope params; don't override URL params
    $location.search(utilityFactory.mergeObjects($location.search(), $scope.params, false)); // REMEMBER THIS AS #1

    // Replace browser history entry
    $location.replace();
}

当我对$scope.params进行更改以更新URL参数时,我调用了另一个函数:

$scope.updateParams = function () {
    // Reset pagination
    delete $scope.params.skip;

    // Update URL params
    $location.search($scope.params); // REMEMBER THIS AS #2
};

在#1中,控制器被初始化,控件进入if(){}而不是else{}。完善。但是,在#2中,$location.search()不会刷新控制器。如果我使用$route.reload()在#2之后强制重新加载,则控制器会初始化两次。

我做错了什么?

0 个答案:

没有答案