更改条件

时间:2017-01-16 02:59:05

标签: javascript angularjs cordova

我有一个带有离子,角度和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这样的模块化架构师。

谢谢!

0 个答案:

没有答案