FeatureRegistry
すべての機能が登録されているサービスを呼び出す必要があります。登録機能は FeatureRegistry に依存しています (その逆はありません)。
私が今それをした方法は次のとおりです。
angular.module('app').factory('FeatureRegistry', function(){
var FeatureRegistry = new Object();
FeatureRegistry.features = new Array();
FeatureRegistry.registerFeature = function(feature){
FeatureRegistry.features.push(feature);
}
return FeatureRegistry;
}
angular.module('app').factory('Feature', function(FeatureRegistry){
var Feature = new Object();
FeatureRegistry.registerFeature(Feature);
return Feature;
}
しかし、この機能は登録されていないようです。機能の FeatureRegistry を調べると。
私はFeatureControllerでそれをテストしました:
angular.module('app').controller('FeatureController',
function($scope, FeatureRegistry){
$scope.features = FeatureRegistry.features;
return this; // not sure if a return is necessary
}
編集:
これで、サービスが遅延ロードされ、注入されたときにのみインスタンス化されることがわかりました。FeatureRegistry
しかし、機能は別のファイルとフォルダーにあるはずであり、新しい機能が追加されるたびに依存関係を変更したくないため、実現したいアプリケーションでは直感に反します。
編集2:
ここで、構造がどのように見えるかを示す図を作成しました。