如果用户登录了AngularJS,则重定向索引页
发布时间:2020-12-17 08:13:45 所属栏目:安全 来源:网络整理
导读:我想改变用户在访问我的网站时看到的页面。如果他们是匿名的,他们应该看到注册页面。如果他们已经登录,他们应该看到他们的仪表板。 我有一个服务,检查用户是否登录(例如检查cookie),当Angular服务加载时触发。我尝试使用$ routeProvider重定向,但是当$
我想改变用户在访问我的网站时看到的页面。如果他们是匿名的,他们应该看到注册页面。如果他们已经登录,他们应该看到他们的仪表板。
我有一个服务,检查用户是否登录(例如检查cookie),当Angular服务加载时触发。我尝试使用$ routeProvider重定向,但是当$ routeProvider正在初始化时,服务尚未触发,因此始终认为用户未登录。 初始页面加载后,我可以轻松地重定向,但是我正在努力重定向加载的第一页。任何人都可以提供如何做到这一点的建议?
确保在答案下阅读评论。当我回答这个问题时,我没有想过单元测试和设计。我只是表明,可以通过多种方式来实现预期的结果
我认为在控制器或你的app.config.run下做最好的方法。 以下是示例的链接,后跟app.js代码 http://plnkr.co/edit/dCdCEgLjLeGf82o1MttS var login = angular.module('myLoginCheck',[]) .factory('$logincheck',function () { return function (userid) { // Perform logical user logging. Check either // by looking at cookies or make a call to server. if (userid > 0) return true; return false; }; }); var app = angular.module('myApp',['myLoginCheck']); app.config(function ($routeProvider,$locationProvider) { $routeProvider .when('/publicurl',{}) .when('/loginurl',{}) .when('/unauthorize',{}) .otherwise({redirectTo: '/'}); }) .run(function ($logincheck,$location) { //console.log("Into run mode"); console.log("Userid 5 is logged in: ",$logincheck(5)); console.log("Userid 0 logged in: ",$logincheck(0)); //now redirect to appropriate path based on login status if ($logincheck(0)) { //$location.path('/loginurl'); or } else { //$location.path('/publicurl'); or } }); app.controller('MainCtrl',function ($scope) { $scope.name = 'World'; }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- angularjs – 在Angular2中使用带有SASS和PostCSS的Webpack
- 电子邮件 – 在Postfix中添加用户而不创建新的unix / linux
- 单元测试 – 嵌套控制器的单元测试
- twitter-bootstrap – 引导程序组合行(rowspan)
- scala – 当存储级别设置为磁盘时,Spark存储数据在哪里?
- Go vs. Scala用于实时webapps
- vimrc设置忽略netrw中的文件类型
- vimdiff作为合并工具
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 按钮:表示一
- 为什么我的AngularJS,Karma/Jasmine测试运行这么慢?
推荐文章
站长推荐
- scala – 在Neo4j中创建多线程节点
- shell – 在可执行文件中跟踪可执行文件
- 动态调用webservice时 ServiceDescriptionImport
- angularjs – 使用Saucelabs上传量角器文件
- dbca解决办法-bash: dbca: command not found
- twitter-bootstrap – Knockout Twitter Bootstr
- typescript – angular2 router.navigate里面的a
- Webservice系列CXF方式(一)
- Docker容器之间的IPC通信
- 经常使用的查询的psql快捷方式? (比如Unix“别名
热点阅读