6

Sto costruendo un'app angolare con diversi moduli vicino a john papas styleguide. In seguito, ho diversi moduli indipendenti con le loro definizioni di route e altri con intercettori. Il mio problema è: quando lo eseguo su Cordova/Android, le definizioni di stato sembrano funzionare, quando le inserisco nel modulo principale. Nel mio browser il lavoro. Qualcuno ha ancora superato questo problema?Angolare che si comporta in modo diverso su Cordova

E.g. Questo funziona sia su browser locale e sul dispositivo con Cordova:

//main.js 
'use strict'; 
angular.module('main', [ 
    'app.core', 
    'auth' 
]) 
.config(function ($stateProvider, $urlRouterProvider) { 
    // ROUTING with ui.router 
    $urlRouterProvider.otherwise('/main/list'); 
    $stateProvider 
    // this state is placed in the <ion-nav-view> in the index.html 
    .state('main', { 
     url: '/main', 
     abstract: true, 
     templateUrl: 'main/templates/menu.html', 
     controller: 'MenuCtrl as menu' 
    }) 
    .state('main.login', { 
    url: '/login', 
    views: { 
     'pageContent': { 
     templateUrl: 'auth/templates/auth.login.html', 
     controller: 'LoginCtrl' 
     } 
    } 
    }) 
/* more states here */ 

Questo funziona solo in browser locale (modulo principale come sopra):

//auth.routes.js 
'use strict'; 

angular 
    .module('auth.routes') 
    .config(config); 

function config ($stateProvider) { 
    $stateProvider 
    .state('main.login', { 
     url: '/login', 
     views: { 
     'pageContent': { 
      templateUrl: 'auth/templates/auth.login.html', 
      controller: 'LoginCtrl' 
     } 
     } 
    }) 
} 

//auth.module.js 
'use strict'; 

angular.module('auth', [ 
    'app.core', 
    'auth.constants', 
    'auth.routes', 
    'auth.controllers', 
    'auth.services', 
    'auth.interceptors', 
    'auth.config' 
]); 

angular.module('auth.constants', []); 
angular.module('auth.routes', []); 
angular.module('auth.controllers', []); 
angular.module('auth.services', []); 
angular.module('auth.interceptors', []); 
angular.module('auth.config', []); 

errore dice che lo Stato non è stato trovato sulla navigazione .

+2

Immagino che questo sia dovuto all'esempio, ma nella parte del secondo codice non si definisce lo stato "principale", ma solo il suo figlio "main.login". Potrebbe essere il problema? – Cyberdelphos

+0

Nel codice di esempio si sta sovrascrivendo il modulo auth.routes precedentemente definito con questa riga angular.module ('auth.routes', []) ;. Questo potrebbe essere il problema. –

+0

lo sto definendo senza sovrascrittura – niklas

risposta

0

Prova

angular 
     .module('test', []) 
     .config(config); 

    config.$inject = ['$routeProvider']; 
    function config($routeProvider) { 
     $routeProvider 
      .when('/login', { 
       title: 'Calculators', 
       templateUrl: 'modules/views/login.html', 
       controller: '' 
      }); 
    } 

rimuovere fornitore di stato, controllare per un semplice percorso che funzionerà.

+0

Non posso confermare che funzioni. Ho provato con Stateprovider solo quando il mio progetto si basa su di esso. Ma potresti aver indicato una direzione interessante. – niklas

Problemi correlati