即使路由有参数,$stateParams 也得到空值

$stateParams is getting empty value even though route has parameters

我正在打这个url

http://localhost:8001/#/verifyMail?4c4e77a2

当时我做了

console.log($stateParams);

显示空对象

我的路线是

.state('mailVerification', {
        url: "/verifyMail?id",
          templateUrl: "app/views/common/emailVerification.html",
          controller: 'accountCtrl',
          data: {
              authorizedRoles: [USER_ROLES.all]
          }
      })

为什么我没有得到 $stateParams.id 的价值?请帮助我。

您需要解析数据。

.state('mailVerification', {
    url: "/verifyMail?id",
      templateUrl: "app/views/common/emailVerification.html",
      resolve: {
          id: function($stateParams){
              return $stateParams.id;
          }
      }
      controller: 'accountCtrl',
      data: {
          authorizedRoles: [USER_ROLES.all]
      }
  })

控制器内部:

.controller('accountCtrl', ['id', '$log', function(id, $log){
    $log.debug(id);
}]);