Javascript AngularJS解析依赖项

Javascript AngularJS解析依赖项,javascript,angularjs,angular-ui-router,angularjs-controller,angular-promise,Javascript,Angularjs,Angular Ui Router,Angularjs Controller,Angular Promise,我正在开发一个允许用户以不同级别登录或访问应用程序的应用程序。我添加了一个解析依赖项以获取用户列表。它确实返回了正确用户的列表如何将此对象传递给控制器? 我在网站上遵循了一个类似的示例,但我的getPrelogin对象始终未定义。我做错了什么 .state('registration.login', { url: '/Login', resolve: { preLoginFactory: 'preLoginFacto

我正在开发一个允许用户以不同级别登录或访问应用程序的应用程序。我添加了一个解析依赖项以获取用户列表。它确实返回了正确用户的列表如何将此对象传递给控制器? 我在网站上遵循了一个类似的示例,但我的getPrelogin对象始终未定义。我做错了什么

.state('registration.login', {
            url: '/Login',
            resolve: {
                preLoginFactory: 'preLoginFactory',
                getPrelogin: function (preLoginFactory) {
                    var result = preLoginFactory();
                    result.then(function (result) {
                        return result.data.Model.IntroMessage;
                    })
                }

            },
            views: {
                "content@": {
                    templateUrl: '/Account/Login',
                    controller: function ($scope, $stateParams, $location, LoginFactory, getPrelogin, preLoginFactory) {
                        console.log('the value of get pre login')
                        console.log(getPrelogin);
                        $scope.introMessage = getPrelogin;
                        $scope.loginForm = {
                            emailAddress: '',
                            password: '',
                            rememberMe: false,
                            returnUrl: $stateParams.returnUrl,
                            loginFailure: false
                        };
                        $scope.login = function () {
                            var result = LoginFactory($scope.loginForm.emailAddress, $scope.loginForm.password, $scope.loginForm.rememberMe);
                            result.then(function (result) {
                                if (result.success) {
                                    if ($location.loginForm.returnUrl !== 'undefined') {
                                        $location.path('/routeOne');
                                    } else {
                                        $location.path($scope.loginForm.returnUrl);
                                    }
                                } else {
                                    $scope.loginForm.loginFailure = true;
                                }
                            });
                        };
                    }//"LoginController"
                }
            }
        })

解析对象
getPrelogin
应该返回
result
变量,因为promise
preLoginFactory
工厂确实返回promise对象。通过在控制器内部注入
getPrelogin
,您将直接从
getPrelogin
返回数据,即
result.data.Model.IntroMessage

代码

resolve: {
  preLoginFactory: 'preLoginFactory',
  getPrelogin: function(preLoginFactory) {
      var result = preLoginFactory();
      return result.then(function(response) {
        return response.data.Model.IntroMessage;
      })
  }
},

你必须兑现你的承诺:

getPrelogin: function (preLoginFactory) {
     var result = preLoginFactory();
     return result.then(function (result) {
         return result.data.Model.IntroMessage;
     })
}

@JeanB很高兴帮助你..谢谢:)