AngularJs app.config服务提供者

时间:2015-11-11 14:22:10

标签: angularjs

在我的 app.config 中,我可以从我的UserProvider服务中检索登录信息:

var login = "";
UserProvider.$get().getUser()
            .then(function (data) {
                login = data;
            });

但我如何在“ .then ”功能之外检索此登录信息并对其进行检查:

if (login == "admin") {

$stateProvider         
            .state('admin', {
                url: '/admin',
                templateUrl: 'app/admin.html',
                controller: 'adminCtrl'
            })

else {
 .state('guest', {
                url: '/guest',
                templateUrl: 'app/guest.html',
                controller: 'guestCtrl'
            })

}

此外,当我想在navbar中的index.html中显示登录时:

  .state('/', {
               url: '/',
              templateUrl: 'index.html',
             controller: 'userCtrl',
              resolve: {
               login: function () {
                   return login;
               }
           }
             })

我有这个错误:尝试加载Angular多次

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

请不要依赖配置。

配置本身是 STATIC 数据,在大多数情况下不应更改。更好的方法是重定向用户意识到他不是和管理员帐户等。

您需要单独创建两条路线并添加到您的主要(上方)路线resolveFunction()功能,该功能将从您的后端获取$http.get()

至少在您加载主控制器后,您将被告知并准备好将路由转换为应用程序的子状态( admin guest 状态作为子状态主要应用模块)。