1

このように角度のあるものを書く価値があるかどうか疑問に思います:

(function(angular, module) {

  'use strict';

  module.controller('MyCtrl', function($scope) {
    // possibly use helperFunction here
  });

  function helperFunction() {
    ...
  }

})(angular, angular.module('myModule'));

またはこの方法(Appオブジェクトを使用してアプリのものをそれに入れます:

App = App || {};

App.myModule = App.myModule || angular.module('myModule', []);

App.myModule.controller('MyCtrl', function($scope) {

  'use strict'

  // possibly use helperFunction here

  function helperFunction() {
    ...
  }

});

このような通常の方法を使用するよりも

angular.module('myModule').controller('MyCtrl', function($scope) {

  'use strict'

  // possibly use helperFunction here

  function helperFunction() {
    ...
  }

});

これらは、私の頭に浮かんだアプリ コードを構造化する 3 つの方法 (requirejs は数えません) です。ほとんどの場所で見られるように、私は「通常の」1 つ (最後) を使用していますが、これら 2 つの前者のアプローチを使用する利点があるかどうか疑問に思います。それらが役立つ特別なケースがあるかもしれませんが、私は知りません。

4

2 に答える 2

1

最初のアプローチには、グローバル名前空間を汚染しないという利点があるため、名前の競合のリスクが軽減されます。これは、既存のプロジェクトを拡張する場合、またはモジュールが複数のコンテキスト (たとえば、パブリック ライブラリ) で使用される場合に特に重要です。

個人的には、特に理由もなく、2 番目のスタイルよりも 3 番目のスタイルを好みます。オプティマイザは非グローバル コードの最適化に優れていると主張する人もいるでしょう。

于 2013-10-14T07:55:17.410 に答える
0

答えはとても簡単です。「依存性注入」の背後にある考え方です (詳細については、angular ドキュメントを参照してください)。Angular の組み込みモジュールを使用することで、後でそれらのモジュールを使用するときに、それらのモジュールへの依存関係を宣言できます。これは、単体テストを簡単に実行できるようにするために非常に重要です。グローバル名前空間にないことは問題の一部ですが、より大きな問題は、(後続の各モジュールで) 現在のモジュールが依存している他のモジュールを宣言できることです。

このトピックについて詳しく説明しているまともな記事は次のとおりです

于 2013-10-14T16:47:48.853 に答える