在我的 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多次。
感谢您的帮助
答案 0 :(得分:0)
请不要依赖配置。
配置本身是 STATIC 数据,在大多数情况下不应更改。更好的方法是重定向用户意识到他不是和管理员帐户等。
您需要单独创建两条路线并添加到您的主要(上方)路线resolveFunction()
功能,该功能将从您的后端获取$http.get()
。
至少在您加载主控制器后,您将被告知并准备好将路由转换为应用程序的子状态( admin 或 guest 状态作为子状态主要应用模块)。