2017-02-22 5 views
0

現在、サブモジュールで定義された状態を使用しようとしてエラーが発生しています。私はこれに取り組んでいますAngularJS-Boilerplateと私はあまり慣れていない方法でコーディングします。私はメインモジュールで$ stateProviderを置く場合AngularJS - サブモジュールからの状態がメインモジュールによって認識されない

angular.js:11706 Error: Could not resolve 'boilerplate.home' from state ''

は、これが私のメインモジュールです:

;(function() { 


    /** 
    * Definition of the main app module and its dependencies 
    */ 
    angular 
    .module('boilerplate.demo', [ 
     'ui.router', 
    ]) 
    .config(config); 

    // safe dependency injection 
    // this prevents minification issues 
    config.$inject = ['$stateProvider']; 

    function config($stateProvider) { 
    console.log('states'); 
    $stateProvider 
      .state('boilerplate.home', { 
       url: '/home', 
       templateUrl: 'app/demo/partials/home.html', 
       controller: 'MainController', 
       controllerAs: 'vm' 
      }) 

    } 

})(); 

私はこのエラーを取得する:これは私のサブモジュールである

;(function() { 


    /** 
    * Definition of the main app module and its dependencies 
    */ 
    angular 
    .module('boilerplate', [ 
     'ui.router', 
     'boilerplate.demo' 
    ]) 
    .config(config); 


    config.$inject = ['$locationProvider', '$stateProvider', '$httpProvider', '$compileProvider', '$authProvider']; 

    function config($locationProvider, $stateProvider, $httpProvider, $compileProvider, $authProvider) { 

    $locationProvider.html5Mode(false); 

    $httpProvider.interceptors.push('authInterceptor'); 

    $authProvider.facebook({ 
     clientId: '471453806577471', 
     responseType: 'token' 
    }); 

    } 

    /** 
    * Run block 
    */ 
    angular 
    .module('boilerplate') 
    .run(run); 

    run.$inject = ['$rootScope', '$state', '$stateParams','$location']; 

    function run($rootScope, $state, $stateParams, $location) { 
    $state.go('boilerplate.home'); 

    } 


})(); 

コントローラモジュールを動作するメインモジュールにも変更します。どんな助け?

答えて

2

メインモジュールには、少なくともデフォルトの状態プロバイダも必要です。あなたのメインモジュールにこれを入れてみてください:

状態を別々のモジュールで作成する場合、状態の命名規則の階層を満たす必要があります。抽象状態またはデフォルト状態の名前がの定型文の場合、サブモジュールの状態は定型文のいずれかである必要があります。

編集:

私は一つのことを追加するのを忘れ。あなたのサブモジュールの$ stateProvider状態定義に、プロパティを追加する必要があります。

$stateProvider 
      .state('boilerplate.home', { 
       url: '/home', 
       parent: 'boilerplate', 
       templateUrl: 'app/demo/partials/home.html', 
       controller: 'MainController', 
       controllerAs: 'vm' 
      }) 

基本的に、子(サブモジュール)状態は親状態であることを認識する必要があります。

+0

ありがとうございます!今では状態を認識しますが、部分的にロードされません:( そして、部分的な部分を認識しています。無効な部分パスを置くとエラーが発生します。 –

関連する問題