首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ui-Router否则使用ng-admin规则

Ui-Router否则使用ng-admin规则
EN

Stack Overflow用户
提问于 2017-06-29 00:29:03
回答 1查看 81关注 0票数 0

我在一个angular应用程序中遇到了一个问题,在那里我集成了ng-admin来提供一个简单的管理面板。我还集成了身份验证,并希望在没有当前会话时指向登录状态。

Ng-admin本身将ui-router的sets方法设置为直接指向仪表板。即使在设置自己的$urlRouterProvider.otherwise(...)时,我也不能强制ui-router使用我的其他函数。

我是这样尝试的:

代码语言:javascript
复制
$urlRouterProvider.otherwise(function ($injector) {
    console.log('Hello World?!');
    state.go('login');
});

但是console.log永远不会打印出来。

在运行任何仪表板代码之前,我想截取到仪表板的状态转换,并首先将用户重定向到登录页面。

任何提示和想法都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2017-06-30 16:08:14

感谢@user8175473为我指明了正确的方向。

我已经用$on('$stateChangeStart)解决了这个问题,因为$on('$stateChangeSuccess)是在一些状态代码执行后调用的。

代码语言:javascript
复制
$rootScope.$on('$stateChangeStart', function(event, toState) {
    if(toState.name !== 'login' && !service.isLoggedIn()) {
        event.preventDefault();
        $state.go('login');
    }
});

请注意,需要使用event.preventDefault()来完全取消状态转换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44808041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档