web-dev-qa-db-ja.com

Angularjsの複数モジュール

Angularスクリプトで複数のモジュールを作成することはできますか?私はドキュメントを調べて、それが何らかの主要なメソッド概念であることを学びました。

これを実証するための例が必要です。

39
Habibur Rahman

はい、以下に示すように、angularJSで複数のモジュールを定義できます。

var myApp = angular.module('myApp', [])
var myApp2 = angular.module('myApp2', [])

ただし、次のように各モジュール宣言中に依存関係を定義することを忘れないでください。 myApp2がmyAppに依存していると仮定しましょう。したがって、宣言は次のようなものになります。

var myApp = angular.module('myApp', [])
var myApp2 = angular.module('myApp2', ['myApp'])

AngularJSのモジュール化は、複数のモジュールを組み合わせてアプリケーションを生成できるため、コードをわかりやすく理解しやすくするのに役立ちます。ただし、タイプではなく機能に基づいてコンポーネントをモジュール化する必要があることに留意する必要があります。

42
Aviro

HTMLドキュメントごとに自動ブートストラップできるAngularJSアプリケーションは1つだけです。ドキュメントで最初に見つかったngAppは、アプリケーションとして自動ブートストラップするルート要素を定義するために使用されます。 HTMLドキュメントで複数のアプリケーションを実行するには、手動でbootstrap代わりにangle.bootstrapを使用する必要があります。AngularJSアプリケーションは相互にネストできません。 http://docs.angularjs .org/api/ng.directive:ngApp 参照

https://groups.google.com/d/msg/angular/lhbrIG5aBX4/4hYnzq2eGZwJhttp://docs.angularjs.org/api/angular.bootstrap

ng-appは1つだけ使用できますが、次のように2つのモジュールを組み合わせることができます。

var moduleA = angular.module("MyModuleA", []);
moduleA.controller("MyControllerA", function($scope) {
  $scope.name = "Bob A";
});

var moduleB = angular.module("MyModuleB", []);
moduleB.controller("MyControllerB", function($scope) {
  $scope.name = "Steve B";
});

angular.module("CombineModule", ["MyModuleA", "MyModuleB"]);

その後 ng-app="CombineModule"

28
Mohamed NAOUALI

私は彼がngAppとモジュールを混同していると思う、1つのページに1つのアプリケーション(ng-app)だけがあり、アプリのビュー(ngViewまたは<ng-view>)は一度だけしか存在できない。ただし、前の回答で述べたように、必要な数のモジュールを作成し、それらを「メイン」アプリケーションモジュールに依存関係として挿入できます。私は通常、独自のモジュールでディレクティブ、フィルター、コントローラーなどを分離するためにこれを行います。

編集:

ngApp- http://code.angularjs.org/1.1.5/docs/api/ng.directive:ngApp

13
m.e.conroy

もちろんできます。作成したいモジュールの数だけangular.module('moduleName', [/* dependencies */])を使用してください。

以前に定義したモジュールへの参照を取得するには、var myModule = angular.module('moduleName');を実行し、次にmyModule.controller(...)myModule.config()myModule.constant()などを実行します。

推奨プロジェクトレイアウト(Angular Seed)を参照)には、アプリ用のモジュールがあり、次にコントローラー用、サービス用、フィルター用、さらにディレクティブ用のモジュールがあります。 単なる提案 。他の人は 代替レイアウト を提案します。

12
Thalis K.

複数モジュールとはどういう意味ですか?モジュールを別のモジュールに挿入できます

angular.module(name[ anotherModule]);
1
LauroSkr