想要用angularjs实现的功能是

一进入就是一个登录页面(login.html),如果没有账号密码就注册,登录成功后跳转到相应的页面(shopcart.html)

碰到的问题

1.一进入页面没有显示登录页面

2.显示成功后该如何跳转到相应的页面

3.应该在何处判断用户是否登录,或者登录超时之类的

下面是我的文档目录结构

app.js里的代码如下

'use strict';

// Declare app level module which depends on filters, and services

angular.module('myApp', [])

.run(function($rootScope) {

$rootScope.$on('$stateChangeStart', function(event,toState,toParams,fromState,fromParams) {

if(toState.name == 'login') return;//如果是进入登录页面则允许

//如果用户不存在

if(!$rootScope.user || $rootScope.user.token) {

event.preventDefault();//取消默认跳转行为

$state.go("login",{from:fromState.name,w:'notLogin'});//跳转到登录界面

}

});

})

.config(function($httpProvider,$rootProvider) {

$httpProvider.interceptors.push('userInterceptor');

$rootProvider

.when('/',{

templateUrl:'views/shopcart.html'

})

.when('/login', {

templateUrl: 'views/account/login/login.html'

})

.when('register', {

templateUrl: 'views/account/register/register.html'

})

.otherwise({

redirectTo:'/login'

});

})

.factory('userInterceptor',["$q","$rootScope",function($q,$rootScope) {

return {

request: function(config) {

config.headers["TOKEN"] = $rootScope.user.token;

return config;

},

responseError: function(response) {

var data = response.data;

//判断出错误码,如果是未登录

if(data["errorCode"] == "500999") {

//清空本地token存储信息

$rootScope.user = {token: ""};

//全局事件,方便其他view获取该事件,并给以相应的提示或处理

$rootScope.$emit("userInterceptor","notLogin",response)

}

//如果是登录超时

if(data["errorCode"] == "500998") {

$rootScope.$emit("userInterceptor","sessionOut",response);

}

return $q.reject(response);

}

}

}]);

login.controller.js文件里的代码如下

'use strict';

angular.module('myApp',[])

.controller('LogoinCtrl',["$rootScope","$scope", function($rootScope,$scope) {

//跳转到登录界面,记录了一个from,这样可以在登陆后自动跳转到未登录之前的那个页面去

$state.go("login", {from:$state.current.name,w:errorType});

if($rootScope.user,token) {

$state.go($rootScope.defaultPage);

return;

}

//登录成功后跳转到上一次页面,也就是上面记录的from

var from = $stateParams["from"];

$state.go(from && from != "login" ? from : $rootScope.defaultPage);

}]);

login.js里的代码如下

angular.module('myApp',[])

.config(function($stateProvider) {

$stateProvider

.state('login', {

url:"/login",

templateUrl:"views/account/login/login.html"

})

.state('register', {

url:'/register',

templateUrl:"views/account/register/register.html"

})

.otherwise({redirectTo: '/login'});

});

shopcart.js里的代码如下

'use strict';

angular.module('myApp',[])

.config(function($stateProvider) {

$stateProvider

.state('/',{

url:'/home',

templateUrl:'views/account/shopcart/shopcart.html' //登录成功后跳转到购物车页面

})

.oherwise({redirecTo:'/login'});

})

登录成功后怎么跳转页面html,怎么设置登录成功后跳转到相应的页面相关推荐

  1. 页面jlabel背景色设置_(六)使用elementUI搭建管理员页面布局

    主页面布局 使用ElementUI布局el-container,简单搭了home页框架 < 显示如图,然后根据自己需要设置导航栏 自己修改后页面 页面优化 el-menu中属性介绍 backgr ...

  2. dpi重启后会恢复_Win8等设备DPI设置过大后的还原办法

    现在的消费类电子设备屏幕越做越小,分辨率却反而在往上增加,例如 Surface Pro,10.6 寸的屏幕,1080p的全高清显示,会让 Windows 显示的文字变得异常的小.这个现象其实是因为屏幕 ...

  3. Allegro 17.2 xnet设置不成功解决方法

    Allegro 17.2 xnet设置不成功解决方法 ALLEGRO 17.2 XNET设置不成功解决方法 1  ALLEGRO 17.2 XNET设置不成功 新建PCB设置成功. 导出约束文件,对比 ...

  4. html登陆成功后跳转页面跳转,怎么设置登录成功后跳转到相应的页面

    想要用angularjs实现的功能是 一进入就是一个登录页面(login.html),如果没有账号密码就注册,登录成功后跳转到相应的页面(shopcart.html) 碰到的问题 1.一进入页面没有显 ...

  5. django 设置登录成功后的页面

    python 版本3.7.4,django 2.2.6,设置登录后的页面,登录页面是在一个form 进行的,如下所示: <form method ="post",action ...

  6. php未登录跳到登陆页面,vue实现未登录跳转到登录页面的方法

    环境:vue 2.9.3; webpack;vue-router 目的:实现未登录跳转 例子:直接在url地址栏输入...../home,但是这个页面要求需要登陆之后才能进入,判断的值就通过登陆之后给 ...

  7. Django:文章详情页面评论功能需要登录后才能使用,登录后自动返回到文章详情页...

    背景: 文章详情页正在查看文章,想评论一下写的不错,但是需要先登录才能.页面长这个样子: 方案: 1.点击登录链接时,将该页面的URL传递到登录视图中 request.path获取的是当前页面的相对路 ...

  8. 接收表单中的用户名和密码,如果用户名和密码分别为“admin“和“123456“,则返回登录成功页面,否则返回登录失败页面。

    接收表单中的用户名和密码,如果用户名和密码分别为"admin"和"123456",则返回登录成功页面,否则返回登录失败页面.已知登录面如下: <form ...

  9. html语言 怎么清除用户名 name= password=,在html页面中填写注册表单后,它会给出这个错误,并使用用户名和密码并将值存储在登录表单中...

    在html页面中填写注册表单后,它会给出此错误,并使用用户名和密码并将值存储在登录表单中:TypeError at /login/ argument of type 'NoneType' is not ...

最新文章

  1. 浅尝Windows Server 2016——Container 容器:部署
  2. 【HDOJ】3345 War Chess
  3. 拯救 Out Of Memory,8个案例带你飞!
  4. 如何在linux系统自动mount一个NTFS分区只读方式挂载
  5. Vue3.0 组合式 API 分析与实践
  6. python 两个乘号是什么_(2)Python 变量和运算符
  7. 字典-字典的循环遍历
  8. 腾讯 PCG 招计算机视觉实习生!52CV关注者可加速面试进程
  9. 用鸿蒙取名好吗,“鸿蒙”两个字,还是古人写得好看…
  10. 华为云鲲鹏云服务器RC6正式公测,多元算力加速企业创新升级
  11. 金融风控必备:想从手机上做风控管理?原来还可以从设备指纹入手
  12. 解三对角线性方程组的追赶法
  13. ARcgis常用符号库(含字体库)_三调_二调_规划等
  14. 共轭(conjugate)
  15. 程序猿生存指南-34 我与清华
  16. 2022T电梯修理考试题库及模拟考试
  17. android dashboard 开源,android dashboard布局
  18. 价值1.35亿美元的BUG
  19. 【分类汇总】idea快捷键、idea配置、常用插件
  20. BombLab Phase-1 Phase-2

热门文章

  1. 易基因|3文一览:DNA甲基化及组学测序在斑马鱼中的科学研究成果
  2. 回文日期 php,c语言程序实例大全,220个详细程序源代码
  3. 浏览器input自动填充
  4. Oracle Coherence 3.5 读书笔记之3 - 满足性能,可扩展和可用性目标
  5. 原生小程序 之引入 icon字体图标
  6. android测量图片工具,ImageMeter Pro(图像测距)
  7. element-plus ui表格表头筛选功能
  8. 保姆级黑苹果教程:让你的Ryzen+A卡用上最新版本的MacOS
  9. ubuntu解压各种文件
  10. 从Linux角度以及JVM源码,深入NIO的细节