$state.go ui-路由函数忽略自定义参数

$state.go ui-routing function ignores custom parameters

我创建了一个 'go' 后退选项,将用户带回到 advSrch screen/state。如果返回,我将 loadSearchQuery 传递为 true。

  $scope.back = function() {
    $state.go('advSrch', { isDeleted: false, loadSearchQuery: true });
  };

但是无论如何我的应用总是使用默认值。

    }).state("advSrch",{url:"/advSrch",
    templateUrl: "app/search/advSearch.html",
    controller: "searchCtl",
    params: { isDeleted: null, loadSearchQuery: null },
    data: { authorizedRoles: ['USR']}

当我console.log回去后loadSearchQuery一直是null。我做错了什么吗?

确保您尝试从 $stateParams 获取 loadSearchQuery

angular.module('app').controller('searchCtl', ['$scope', '$state',   '$stateParams',
    function ($scope, $state, $stateParams) {

        // Log param
        console.log($stateParams.loadSearchQuery);

        // ...
    }
]);

编辑:正如 jackthed 在回答中指出的那样,从 ui-路由器版本 1 开始不推荐使用 $stateParams,而是可以使用 $transition$。例如:

angular.module('app').controller('searchCtl', ['$scope', '$transition$',
    function ($scope, $transition$) {

        // Log param
        console.log($transition$.params().loadSearchQuery);

        // ...
    }
]);

$stateParams 属性 已弃用,建议使用 1.0 版本 $transition$ 和 get 使用 $transition$.params() 获取当前转换的参数。

详情on this link