我想要一個名爲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:
現在,我做了一個圖表,顯示結構應該是什麼樣子:
你'FeatureRegistry'工廠需要返回對象'FeatureRegistry'。 – 2013-03-20 17:57:16
ups,是的,忘了鍵入...但這不是錯誤^^ – JustGoscha 2013-03-20 18:00:25