6

john papas styleguideに近いいくつかのモジュールを使用して角度のあるアプリを構築しています。それに続いて、独自のルート定義を持ついくつかの独立したモジュールと、インターセプターを持つ他のモジュールがあります。私の問題は、Cordova / Androidで実行すると、状態定義をメインモジュールに配置したときにのみ機能するように見えることです。私のブラウザで仕事。誰かがこの問題を解決しましたか?

たとえば、これはローカル ブラウザーと 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 */

これはローカルブラウザでのみ機能します(メインモジュールは上記と同じ):

//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', []);

エラーは、ナビゲーションで状態が見つからなかったことを示しています。

4

1 に答える 1

0

試す

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

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

状態プロバイダーを削除し、単純なルーティングが機能することを確認します。

于 2015-09-28T14:01:02.290 に答える