Angularjs $stateParams正在获取空值,即使路由具有参数

Angularjs $stateParams正在获取空值,即使路由具有参数,angularjs,routing,angular-ui-router,Angularjs,Routing,Angular Ui Router,我正在点击这个网址 当时我有 console.log($stateparms) 它显示空对象 我的路线是 .state('mailVerification', { url: "/verifyMail?id", templateUrl: "app/views/common/emailVerification.html", controller: 'accountCtrl', data: { a

我正在点击这个网址

当时我有

console.log($stateparms)

它显示空对象

我的路线是

.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);
}]);

我认为url应该是这样的
/verifyMail/:id
您可以在配置模块中的url:“/verifyMail/:id”中尝试。url必须是localhost:8001/#/verifyMail?id=4c4e77a2@obrejacatalin,我尝试了此操作,但无法检查$location.path()因为每次id都是随机生成的,所以我想使用可选的parameter@fantarama谢谢你的建议,但它不起作用