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

Javascript angularJS路由:url中不必要的参数,javascript,angularjs,url-routing,Javascript,Angularjs,Url Routing,在我的应用程序中,如果我收到密码重置指示,我会使用url进入服务器,如: /changepass?key=1231231231212312 在控制器中,我有这样的代码: if (typeof $routeParams.key !== 'undefined') { $scope.changePassword(); } 但当我更改密码并想在同一视图中登录时,我会转到另一个位置,但这个?key=123123仍然存在。我做错了什么,没有钥匙怎么去公司 $scope.login = f

在我的应用程序中,如果我收到密码重置指示,我会使用url进入服务器,如:

/changepass?key=1231231231212312
在控制器中,我有这样的代码:

  if (typeof $routeParams.key !== 'undefined') {
    $scope.changePassword();
  }
但当我更改密码并想在同一视图中登录时,我会转到另一个位置,但这个
?key=123123
仍然存在。我做错了什么,没有钥匙怎么去公司

$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时,您可以使用它的内置函数,如

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