AngularJS アプリケーションを分割して整理して、5000 行の main.js ファイルだけにならないようにしようとしています。ディレクティブなどを分割して、make
動作するコードをビルドするために使用しても問題ありません。ただし、私のコントローラーには、適度に複雑な内部クラスがいくつかあります。これらは、大まかに次のように定義されていました (わかりやすくするために 1 つだけを示しています)。
var app = angular.module("infrasense", []);
app.controller("AppMain", function($scope, $http, $timeout) {
function NavTree(dbMain, dbTimeout, allTagTypes, allAttTypes) {
...
}
NavTree.prototype = {
...
}
...
$scope.navTree[0] = new NavTree(dbMain, dbTimeout);
...
});
NavTree クラス (データ ログ アプリケーションでサイトとアセットの階層ツリーを保持) は、ディレクティブを使用してレンダリングされ、内部で $http を使用してバックエンド サーバーと通信します (ツリーは複雑すぎて一度にメモリに保持できません。それは変わる)。
シンプルな (cat ベースの) ツールを使用して最終的なコードを生成し続けるために、NavTree をコントローラーから移動したいと考えています。私は現在、コントローラー内から $http を渡すことでこれを行っています。
function NavTree($http, dbMain, dbTimeout, allTagTypes, allAttTypes) {
...
this.$http = $http;
...
}
app.controller("AppMain", function($scope, $http, $timeout) {
...
$scope.navTree[0] = new NavTree($http, dbMain, dbTimeout);
...
});
これは機能しますが、洗練されておらず、AngularJS らしくありません。この種のことを行うための「適切な」方法を提案できる人はいますか?