0
私は、さまざまな言語で、また概念としての依存性注入と制御の逆転にかなり精通しています。ただし、AngularJSのベストプラクティスを使用して、次の例のようなパターンを実現することはできません。AngularJSでの依存性注入と制御の反転
オブジェクトを後でキーで追加したり取得したりできるオブジェクトレジストリを作成しようとしています。
function (angular) {
'use strict';
angular.module('sample')
.service('ObjectRegistry', function() {
var members = [];
this.addMember = function(key, object) {
members[key] = object;
}
this.getMember = function(key) {
return members[key] || {};
}
})
.service('ObjectInstance', [ 'ObjectRegistry', function (ObjectRegistry) {
this.doSomething = function() {};
ObjectRegistry.addMember("my-key", this);
}])
.controller('MyController', [ 'ObjectRegistry', function (ObjectRegistry) {
// Here I need to get ObjectRegistry populated with all services that register themselves in the registry, in this example, with ObjectInstance under the key "my-key"
});
}(angular));
問題はのObjectInstanceが初期化されることはありませんので、ObjectRegistryが取り込まれることはありません(と私は、コントローラから行う必要がしたくない)ということです。
角度でこれを達成するには、どのような方法が最適でしょうか?たとえば、SymfonyのDIコンテナやコンパイラパスでは、このパターンを複製することができますが、AngularのDIを使用する方法についてはあまりよく分かりません。
なぜ2番目のレジストリが必要ですか? – zeroflagL
多くの理由から、現在のユースケースはプラグインレジストリに似ています。 –