angularJS 路由:url 中的不必要参数

angularJS routing: unnecessary params in url

在我的应用程序中,如果我收到密码重置说明,我会使用 url 转到服务器,例如:

/changepass?key=1231231231212312

在控制器中我有这样的代码:

  if (typeof $routeParams.key !== 'undefined') {
    $scope.changePassword();
  }

但是当我更改密码并想在同一视图中登录时,我转到了另一个位置,但是这个 ?key=123123123 仍然存在。我做错了什么,如何在没有任何键的情况下清空:/company?

$scope.login = function() {
        ***
                $location.path('/company');
                ***
      };

我也试过了$scope.$apply($location.path('/company')); 但是当我登录后去公司时,我仍然在 url 中有参数。如何解决?

路由中:

    .when('/signin', {
        templateUrl: 'views/authorization.html',
        controller: 'AuthorizationCtrl'
    })
    .when('/changepass', {
        templateUrl: 'views/authorization.html',
        controller: 'AuthorizationCtrl'
    })

有两种方法可以实现这一点

  • $location#url

$location.url($location.path('/company'));

  • $location.search

$location.search('key', null);

另见


不相关:

当您使用 angularjs 时,您可以使用它的内置函数,例如 angular.isDefined

if(angular.isDefined($routeParams.key)){
     $scope.changePassword();
}