我有一个带有离子,角度和apache cordova的应用程序。
我有两种用户的登录信息。
我想要的是在用户登录后避开登录页面。
我为我的应用购买了一个模板,app.js如下:
// Ionic Starter App
// angular.module is a global place for creating, registering and retrieving Angular modules
// 'example' is the name of this angular module example (also set in a <body> attribute in index.html)
// the 2nd parameter is an array of 'requires'
angular.module('example', [
'ionic',
...
'ionic.service.core'
])
.value('_', window._)
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if (window.statusbarBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
});
})
.config(function($urlRouterProvider) {
// if none of the above states are matched, use this as the fallback
$urlRouterProvider.otherwise('/app/login');
});
当然,使用以下行我无法登录
$ urlRouterProvider.otherwise(&#39; /应用/家&#39);
所以我更改app.js阅读一些文章,但我无法解决问题:
// Ionic Starter App
// angular.module is a global place for creating, registering and retrieving Angular modules
// 'example' is the name of this angular module example (also set in a <body> attribute in index.html)
// the 2nd parameter is an array of 'requires'
angular.module('example', [
'ionic',
...
'ionic.service.core'
])
.value('_', window._)
.run(function($ionicPlatform,$rootScope, $http, $location, $state, loginService) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
$rootScope.$on('$locationChangeStart', function(event, next, current) {
loginService.verificarSesion()
.then(function(usuario) {
debugger;
if(usuario == 1){
//es complejo
$state.go('/app/complejo/home');
}
else if(usuario == 2){
//es usuario comun
$state.go('/app/usuario/home-usuario');
}
else{
//no se renococió ningún usuario válido
$state.go('/app/login');
}
})
.catch(function(e){
console.log('error trying to find the user');
});
});
});
})
.config(function ($urlRouterProvider) {
// if none of the above states are matched, use this as the fallback
$urlRouterProvider.otherwise('/app/login');
})
有些人在网上说过&#34; .config&#34;总是在&#34; .run&#34;之前执行。这就是可能永远不会奏效的原因。但是,如果我删除.config的部分,应用程序永远不会启动。
所以.. 什么是最好的方式来制作我想要的东西?我使用像jhon papa这样的模块化架构师。
谢谢!