30

angular.module('myModule')複数回呼び出した場合の動作は何ですか?

たとえば、ルートとディレクティブを別々の .js ファイルで定義したいと考えています。

これは安全ですか?

例えば:

//routes.js
angular.module('app',['$strap'])
   .config(function($routeProvider, $locationProvider) {
     ...
   });

//directives.js
angular.module('app')
    .directive('formInput', function() {
...

また、依存関係を複数回定義するとどのような影響がありますか? これは相加的なものですか、それとも後攻ですか?

例えば:

4

3 に答える 3

34

angular.module(名前[、必要]、configFn);
...
requires(optional) – {Array.=} – 指定すると、新しいモジュールが作成されます。指定されていない場合、モジュールはさらに構成するために取得されます。-- angular.module ドキュメント

私はそれを次のように解釈します: 依存関係を定義できるのは、特定のモジュールに対して初めて angular.module を呼び出したときの 1 回だけです。その後 angular.module() を複数回呼び出すことができますが、requiresオプションを指定してはなりません。

于 2013-01-17T03:41:58.543 に答える
16

モジュールは一度だけ作成してください。docsによると、既に存在する名前のモジュールを作成すると、前のモジュールが上書きされます。(つまり、後攻が勝ちです。)

angular.module('app', []);

モジュールは何度でも取得でき、必要に応じて個別のファイルで取得できます。通常、モジュールを複数回取得して、サービス、コントローラー、ディレクティブなどを宣言します。

angular.module('app').service('myService', ...);
angular.module('app').controller('myController', ...);
angular.module('app').directive('myDirective', ...);

Modules に関する AngularJS ドキュメントでCreation vs Retrievalというセクションを参照してください。

于 2014-12-23T21:29:12.057 に答える
6

私はAngularを初めて使用しますが、これは私の理解です。名前空間付きのモジュール名で各ファイルに1つのモジュールを作成し、メインモジュールでそれらのモジュールを必要とします。

// in main app.js file
var app = angular.module('myapp', 
          ['myapp.routers', 'myapp.directives', 'myapp.filters']);

// in filters.js
angular.module('myapp.filters', []).filter(....)

// in routers.js
angular.module('myapp.routers', []).router(....)

// in directives.js
angular.module('myapp.directives', []).directive(....)
于 2013-03-05T00:13:25.927 に答える