Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJs app.config服务提供商_Angularjs - Fatal编程技术网

AngularJs app.config服务提供商

AngularJs app.config服务提供商,angularjs,Angularjs,在我的app.config中,我可以从我的UserProvider服务检索登录名: var login = ""; UserProvider.$get().getUser() .then(function (data) { login = data; }); 但如何在.then函数之外检索此登录名并使用它进行检查: if (login == "admin") { $stateProvider

在我的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'
            })

}
另外,当我想在导航栏的my index.html中显示登录名时,请执行以下操作:

  .state('/', {
               url: '/',
              templateUrl: 'index.html',
             controller: 'userCtrl',
              resolve: {
               login: function () {
                   return login;
               }
           }
             })
我有一个错误:多次尝试加载角度


感谢您的帮助

请不要依赖配置

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

您需要分别创建这两个路由,并将其添加到主top route resolveFunction函数中,该函数将使用$http.get从后端获取


至少在加载主控制器后,您会收到通知并准备将路由转换为应用程序管理的子状态或来宾状态,作为主应用程序的子模块。

您想做什么?您使用Angular的方式非常糟糕,$get是$provide用于实例化从提供程序配方发布的服务的私有方法。在angular runtime阶段之前不要使用它…我正在尝试在我的app.config中检索登录名,到目前为止,我只找到了方法。$get来执行此操作。你还有更好的建议吗?总之,我想根据登录名显示模板/控制器Run Dugar:我试图在app.config中获取用户名,然后根据该用户名显示模板/控制器。用户名由my UserService发送,在$http.get serUrl+getUserName之后返回一个承诺这是一个好的开始。但假设我为管理员配置了10条路由,为来宾配置了2条路由。然后我应该检查路由中的所有12个控制器,看看它是否是管理员?这就是为什么我需要找到一种方法,在我的app.config中找到用户,并根据帐户You have$stateChangeStart预测用户的下一步,并在他缺乏访问权限时重定向他。至少我已经创建了runConfig.js作为整个应用程序的配置,以跟踪其状态并管理用户访问和传递。