bry*_*yan 3 javascript authentication angularjs angular-ui-router
现在我有一个简单的角度设置,具有登录状态和云状态.我想这样做只有在用户通过身份验证后才能运行云状态.如果没有,它会将它们引导到登录状态.
到目前为止,我相信我有"解决"设置,并且.run()如果解析失败,我将功能设置为重定向到登录状态.
我只是在弄清楚如何才能authenticated: authenticated得到我需要的东西.我知道我必须在authenticated某处做一个功能,我只是不知道正确的方法.
我是新手,所以如果有人有任何建议,我很乐意欣赏他们.
var routerApp = angular.module('app', ['ui.router'])
.config(function($stateProvider, $urlRouterProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$urlRouterProvider.otherwise('/cloud');
$stateProvider
.state('login', {
url: '/login',
templateUrl: "pages/templates/login.html"
})
.state('cloud', {
url: '/cloud',
templateUrl: "pages/templates/account.html",
resolve: { authenticated: authenticated }
})
})
.run(function ($rootScope, $state, $log) {
$rootScope.$on('$stateChangeError', function () {
$state.go('login');
});
});
Run Code Online (Sandbox Code Playgroud)
解决问题没有那么复杂,请查看文档:
您可以使用resolve为控制器提供自定义状态的内容或数据.resolve是一个可选的依赖关系图,应该注入控制器.
如果这些依赖项中的任何一个是promise,它们将在实例化控制器并触发$ stateChangeSuccess事件之前被解析并转换为值.
...
例子:
在实例化控制器之前,必须解析下面解决的每个对象(通过deferred.resolve(),如果它们是一个promise).注意每个解析对象如何作为参数注入控制器.
$stateProvider.state('myState', {
resolve:{
// Example using function with simple return value.
// Since it's not a promise, it resolves immediately.
simpleObj: function(){
return {value: 'simple!'};
},
...
Run Code Online (Sandbox Code Playgroud)
如果你想要一些工作的plunker,有类似的问答:
如果我们想让DRY发挥作用,我们应该开始考虑国家层级(父/子/ ......).如下所述:
我们可以'root'为一些通用目的引入一些超级状态:
$stateProvider
.state('root', {
abstract : true,
// see controller def below
controller : 'RootCtrl',
// this is template, discussed below - very important
template: '<div ui-view></div>',
// resolve used only once, but for available for all child states
resolve: {
user: function (authService) {
return authService.getUserDetails();
}
}
})
Run Code Online (Sandbox Code Playgroud)
这意味着,每个子州将为祖父('root')提供解决(已经解决).
如果我们要区分父和子分辨率,我们可以使用默认的解析名称...请在此查看详细信息:
如果我们想要解决deny,我们可以只询问提供$state者和重定向.最好的地方是某种改变状态的倾听者.有一个详细的描述如何$rootScope.$on('$stateChangeStart',用于身份验证
困惑$ locationChangeSuccess和$ stateChangeStart
| 归档时间: |
|
| 查看次数: |
9064 次 |
| 最近记录: |