0

アプリをデプロイしてブラウザで実行すると、アプリは正常に動作します

すべてのコントローラー/サービスに正常に到達できます。それらはサブモジュールを介してリンクされていました。

サブモジュールを使用して、ui-router の状態/ルートをより適切に整理しました。(以前は、app dot js ファイルにすべての状態がありました。50 ほどありました。現在は、より小さなモジュールに編成されています)。

app.js [モジュールファイル]

var phpApp = angular.module("phpApp",
[
    "ui-router"
    "phpApp.components" , ...

]).config(...).run(...);

components.js [モジュールファイル、ステート/ルートを含む]

var ComponentModule = angular.module("phpApp.components",
[
    "ui-router"
    "phpApp.components.user" , 
    "phpApp.components.client"
     ...

]).config(...).run(...);

user.js [モジュール ファイル、ステート/ルートを含む]

var UserModule = angular.module("phpApp.components.user",
[
    "ui-router"

]).config(...).run(...);

user-controller.js // LOADS は問題ありません。コントローラーです。

angular.module('phpApp.components').controller('UserController', ....);

client-controller.js // ロードされませ! 「phpApp.components」モジュールが見つかりません...

angular.module('phpApp.components').controller('ClientController', ...);

私の index.html ファイルは、次の順序でスクリプトをロードします。

<script src="app.js"></script>
<script src="components/components-module.js"></script>
<script src="components/user/user-module.js"></script>
<script src="components/client/client-module.js"></script>
...
<script src="components/user/user-controller.js"></script>
<script src="components/client/**client-controller.js**"></script>

理解できません。ユーザーコントローラーの後にクライアントコントローラーがロードされます...それでも適切なモジュールを見つけることができませんか?

エラーが発生します:

Uncaught Error: [$injector:nomod] Module 'phpApp.components' 
is not available! You either misspelled the module name or 
forgot to load it.

この時点で私は非常に混乱し、イライラしています。どこが間違っているのかわかりません。

4

1 に答える 1

0

答えは、カルマ構成ファイル(デフォルトでは karma.conf.js) にあります。

予想通り、答えは簡単でした。

すべての JavaScript ファイルを含めるというルールがありました。

"app/app.js",
"app/components/**/*.js",

最初にすべてのモジュール JS ファイルをロードするようにロード ルールを書き直す必要があります。

"app/app.js",
"app/components/**/*-module.js", <-- modules must load first
"app/components/**/*.js",

説明を助けるために、私は自分のプロジェクトを次の場所に設定しました:

1) controllers are in their respective xxx-controller.js files, 
2) ervices are in xxx-service.js files and 
3) modules are in xxx-module.js files
于 2016-06-07T19:51:33.857 に答える