2017-06-29 12 views
0

コントローラをモジュール化して、そのビューをベアコンポーネントにしたいとしましょう。私の考えは、このモジュールで '/ login' URLに応答するためのルートを定義したいと思うことです。angularJSでインポートされたモジュールで定義されたルートを使用する

var routes = [ 
    { 
     "key": "aes", 
     "value": { 
      "abstract": true, 
      "url": "", 
      "templateUrl": "modules/logincliente/views/common-layout.html", 
      "controller": "commonLayoutController as commonLayoutC" 
     } 
    }, 
    { 
     "key": "aes.loginCliente", 
     "value": { 
      "url": "/login", 
      "views": { 
       "content": { 
        "controller": "LoginClienteController as loginClienteC", 
        "templateUrl": "modules/logincliente/views/loginCliente.html" 
       } 
      } 
     } 
    } 
]; 

このモジュールをアプリケーションにインポートすると、正常に動作するはずです。今、私のアプリケーションはaes.loginCliente状態が存在しないと言っています。

答えて

0

はい、動作するはずですが、$stateProviderに州を登録する必要があります。

しかし、外部モジュールの後にロードされた "コア"モジュールでabstract状態を定義する場合、抽象状態では動作しないことがあります。

することは、このような何か試してみてください:だから

// this module can be loaded externally, before the other one 
angular.module('aes.loginClient', []) 
.config(function($stateProvider){ 
    $stateProvider.state('login', { 
    url: "/login", 
    "controller": "LoginClienteController as loginClienteC", 
    "templateUrl": "modules/logincliente/views/loginCliente.html"  
    }); 
}); 


angular.module('aes', ['aes.loginClient']) 
.config(function($stateProvider){ 
    $stateProvider.state('home', { 
    url: "/", 
    templateUrl: "modules/home/views/home.html", 
    controller: "commonLayoutController as commonLayoutC"  
    }); 
}); 
+0

を、この戦略を採用しながら、私は抽象状態を使用することができない、それというのですか?私が実際に働いているプロジェクトはいくつかの抽象的な状態を使用しています... – Tenorius

+0

わかりません、私はそのような構成を試したことはありません。しかし、それは合理的です - 定義する前に抽象状態を参照しようとしています。モジュールは、その抽象状態を含め、モジュールに関連するすべてのビューに注意を払う必要があります。 – fracz

+0

それは本当に働いた。一時的な解決策は、抽象的な状態をモジュール(コントローラとビュー)に含めることでした。別のモジュールで定義された抽象状態を使用できるかどうかは不明です。 – Tenorius

関連する問題