2017-04-27 14 views
0

ちょうどcontrollersはモジュール "レベル"に依存せず、アプリケーションスタック全体のどこでも使用できます。子モジュールが親モジュールディレクティブを各子モジュールの依存関係として割り当てなくても使用できる方法があるかどうかは疑問です。私は(controllerの観点から)ディレクティブが仕事持って期待していたかの親モジュール指令をコントローラなどの子モジュールで使用できますか?

例:

angular.module('app', ['app.child']); 
angular.module('app.child', ['ui.router']); 

のように記述することができる場合

angular.module('app.child').config(function($stateProvider) { 
    $stateProvider.state('child', { 
    url: '/child', 
    views: { 
     'header': { 
     controller: 'parentController', 
     templateUrl: 'child.html' 
     } 
    } 
    }); 
}); 

angular.module('app').controller('parentController', function() { 
    console.log('test'); 
}); 

それでは、私は疑問に思ってすることです

angular.module('app', ['app.child', 'ui.router']); 
angular.module('app.child', []); 

何らかの形で、ui.routerがまだ子供のために利用可能な場合モジュール。

私が既存のプロジェクトでこれを行うと、私は$injectorというエラーになります。

答えて

1

コントローラはモジュール「レベル」は独立しており、どこでも

これがtrueで、それはあなたがやるべきではありませんものです を使用することができるように。 モジュールは、自己一貫性があり、親モジュールから独立している必要があります。必要なすべての依存関係を宣言する必要があります。

I.e. appとapp.childという2つのモジュールがあり、app.childのいくつかの場所には、あなたのapp.childがui-routerに依存する必要があるよりも<div ui-sref=...があります。 (これはうまくいかない場合でも動作しますが、親はそうですが、これは正しい方法であるとは限りません)

N.B.多くのアプリが1つのモジュール内に残ることがあります。あなたは複数のものが必要ですか?

+0

私は、アプリケーションを構築するときに複数のモジュールを使用するのが良い方法であると聞いたので、地面構造を良好にしたいと考えました。しかし、もし私が持っていると5つの子モジュールを持っていて、それぞれが 'ui-router'を依存関係として使っているとすれば、アプリケーションを大幅に遅くするのでしょうか?あるいは私はどういうわけかそれらを一緒にグループ化すべきですか? – PhyCoMath

+0

いいえ、それはあなたが同じ依存関係を何度も持っているかもしれません - その大丈夫です。複数のモジュールを使用する - Maven/JAVAの複数のプロジェクトと同じように、それらを持っているかもしれませんが、そうでないかもしれません。これは、複数のアプリ/ユーザー間でコードを共有するまで、コードの編成についてです。 (npm/bowerのように) –

+0

素晴らしい!助けてくれてありがとう、私は確かに心に留めておく:) – PhyCoMath

関連する問題