1

私は角度のあるアプリに取り組んでおり、それを設計する方法がいくつかあることを知っています。

1 つ目は、次のようなグローバル名前空間を作成することです。

var App = angular.module('app', []);

次に、たとえばコントローラーを使用すると、次のようになります。

App.controller('HomeController', ['$scope', function($scope) {

}]);

もう 1 つの方法 (私が知る限り) は、次のようにコントローラーをモジュール化することです。

angular.module('App', ['home']);

angular.module('home').controller('HomeController', ['$scope', function($scope) {

}]);

もう 1 つの方法は、次のようになります。

angular.module('App'), ['App.controllers']);

angular.module('App.controllers').controller('HomeController', ['$scope', function($scope) {

}]);

これらのいずれかに利点はありますか、またはAngularコミュニティで採用されているベストプラクティスまたは一般的なスタイルはありますか?

ありがとうございました!

4

2 に答える 2

2

AngularJS を使用したいくつかの大規模なプロジェクトを扱ってきたので、頭に浮かんだことがいくつかあります。

  1. 最終結果に関しては、概説した3つのアプローチに違いはありません
  2. 2 と 3 に注意してください。'home' というモジュールがないことを示す AngularJS のエラーが発生する可能性があります。呼び出しによって、angular.module('home')既に作成されている home というモジュールを検索するよう AngularJS に指示されます。を呼び出すangular.module('home', [])と、home という名前の新しいモジュールを作成するように指示されます。微妙ですが大きな違い。

とはいえ、構築するすべてのアプリケーションで再利用したいコンポーネントの開発を検討している場合は、後者のアプローチに従うことを強くお勧めします。たとえば、いくつかの Web アプリを作成していて、datepicker、カルーセルなどの独自の UI コンポーネントを開発したとします。これらを何度もコーディングする必要がないため、それらをモジュール内に配置できます ( 「Common.components」と言います)。

その後、すべてのプロジェクトに含めることができるライブラリとして JS ファイルのみをエクスポートできます。貼り付けコードをコピーしたり、巨大なアプリケーションの内部から抽出したりする必要はありません。

これにより、さまざまなアプリでうまく機能する、再利用可能な優れたモジュラー ピースが得られます。

于 2013-04-11T05:48:19.040 に答える