state.resolve returns 控制器中的空对象

state.resolve returns an empty object in the controller

我有一个这样定义的状态

.state('login', {
    url: '/login',
    controller: 'LoginController',
    templateUrl: 'templates/login.tpl.html',
    data: {
      loginState: true
    },
    resolve: {
      saml_auth: function ($cookies) {
        var saml_auth = $cookies.get('saml_auth');
        console.log(saml_auth) // returns the string value
        return {claim: saml_auth};
      }
    }

在控制器中,我得到一个空对象,甚至在对象内部也没有属性

angular.module('swSelfService')
  .controller('LoginController', LoginController);

LoginController.$inject = [
  '$scope', 
  'SWSessionService', 
  '$state', 
  '$stateParams', 
  'saml_auth',
];

function LoginController($scope, SWSessionService, $state, saml_auth) {
    console.log(saml_auth) // {}
}

您错过了添加 $stateParams 可注入的第 4 个参数。您将 saml_auth 放置在控制器构造函数中的错误位置,它应该出现在第 5 位。

LoginController.$inject = [
  '$scope', 
  'SWSessionService', 
  '$state', 
  '$stateParams', 
  'saml_auth',
];

function LoginController($scope, SWSessionService, $state, $stateParams, saml_auth) {
    console.log(saml_auth) // {}
}