亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

前端 - 怎么設(shè)置登錄成功后跳轉(zhuǎn)到相應(yīng)的頁(yè)面

瀏覽:140日期:2024-10-09 08:43:10

問(wèn)題描述

想要用angularjs實(shí)現(xiàn)的功能是一進(jìn)入就是一個(gè)登錄頁(yè)面(login.html),如果沒(méi)有賬號(hào)密碼就注冊(cè),登錄成功后跳轉(zhuǎn)到相應(yīng)的頁(yè)面(shopcart.html)碰到的問(wèn)題1.一進(jìn)入頁(yè)面沒(méi)有顯示登錄頁(yè)面2.顯示成功后該如何跳轉(zhuǎn)到相應(yīng)的頁(yè)面3.應(yīng)該在何處判斷用戶是否登錄,或者登錄超時(shí)之類(lèi)的下面是我的文檔目錄結(jié)構(gòu)

前端 - 怎么設(shè)置登錄成功后跳轉(zhuǎn)到相應(yīng)的頁(yè)面

app.js里的代碼如下

’use strict’;// Declare app level module which depends on filters, and servicesangular.module(’myApp’, []).run(function($rootScope) { $rootScope.$on(’$stateChangeStart’, function(event,toState,toParams,fromState,fromParams) { if(toState.name == ’login’) return;//如果是進(jìn)入登錄頁(yè)面則允許 //如果用戶不存在 if(!$rootScope.user || $rootScope.user.token) { event.preventDefault();//取消默認(rèn)跳轉(zhuǎn)行為 $state.go('login',{from:fromState.name,w:’notLogin’});//跳轉(zhuǎn)到登錄界面 } });}).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; //判斷出錯(cuò)誤碼,如果是未登錄 if(data['errorCode'] == '500999') { //清空本地token存儲(chǔ)信息 $rootScope.user = {token: ''}; //全局事件,方便其他view獲取該事件,并給以相應(yīng)的提示或處理 $rootScope.$emit('userInterceptor','notLogin',response) } //如果是登錄超時(shí) 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) { //跳轉(zhuǎn)到登錄界面,記錄了一個(gè)from,這樣可以在登陸后自動(dòng)跳轉(zhuǎn)到未登錄之前的那個(gè)頁(yè)面去 $state.go('login', {from:$state.current.name,w:errorType}); if($rootScope.user,token) { $state.go($rootScope.defaultPage); return; } //登錄成功后跳轉(zhuǎn)到上一次頁(yè)面,也就是上面記錄的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’ //登錄成功后跳轉(zhuǎn)到購(gòu)物車(chē)頁(yè)面 }) .oherwise({redirecTo:’/login’});})

問(wèn)題解答

回答1:

我的習(xí)慣是將用戶相關(guān)的公能單獨(dú)封裝到一個(gè)user service,app.js負(fù)責(zé)調(diào)用,一般來(lái)說(shuō),剛啟動(dòng)程序時(shí)需要檢測(cè)用戶是否登錄(登錄標(biāo)記放在本地),這樣app.js中使用,$state(UI-router模塊)來(lái)切換路由,以跳轉(zhuǎn)到特定頁(yè)面

回答2:

這個(gè)是什么版本的?怎么我現(xiàn)在配路由都是用$routeProvider了

相關(guān)文章:
主站蜘蛛池模板: 亚洲国产视频一区 | 一区国严二区亚洲三区 | 国产一区视频在线 | 欧美一级毛片免费播放aa | 日韩日日日| 亚洲国产精品自在现线让你爽 | 日韩丝袜在线 | 国产一级爱c片免费观看 | 91久久国产情侣真实对白 | 日韩一级欧美一级毛片在线 | 成人资源在线观看 | 一级黑人| 国内精品视频在线播放一区 | 91精品网站 | 狠狠色噜噜狠狠狠狠2022 | 亚洲一区二区精品 | 性强烈欧美一级毛片 | 国产一级 黄 片 | 日韩手机看片福利精品 | 福利网站污 | 国产曰批视频免费观看完 | 久久久久国产精品免费看 | 青草香蕉精品视频在线观看 | 国产视频一二三区 | 操出水视频 | 国产白领丝袜办公室在线视频 | 免费国产精品视频 | 玖玖玖视频在线观看视频6 玖玖视频精品 | 国产精品麻豆网站 | 男女动态视频在线观看 | 国产精品资源在线播放 | 成年人在线观看网址 | 永久免费看电视网站 | 欧美噜噜| 国产三级做爰高清视频a | 免费看爱爱视频 | 国产草草视频 | 欧美在线视频一区二区三区 | 亚洲国产成人综合精品2020 | 99精品国产自在现线观看 | 国产毛片一区二区三区精品 |