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));
的问题是,ObjectRegistry类是从来没有填充因为ObjectInstance从未初始化(我不希望有来自控制器做)。
什么是在Angular中实现这一点的最佳方法?例如我熟悉Symfony的DI容器和编译器通行证,可以复制这种模式,但我不太确定如何使用Angular的DI。
为什么你想要第二个注册表吗? – zeroflagL
许多原因,目前的用例与插件注册表类似。 –