假设我有这个基础提供者:
angular.module('app').provider('BaseClient', function () {
this.setSomething = function (something) {
// Store `something` somewhere
return this;
};
});
现在这两个其他子提供者:
angular.module('app').provider('ClientA', function () {
this.$get = function () {
return {
foo: function () {
console.log('FOO', /* Read `something`, needs to output 'aaa' */);
}
}
};
});
angular.module('app').provider('ClientB', function () {
this.$get = function () {
return {
bar: function () {
console.log('BAR', /* Read `something`, needs to output 'bbb' */);
}
}
};
});
angular.module('app').config(function (clientAProvider, clientBProvider) {
clientAProvider.setSomething('aaa');
clientBProvider.setSomething('bbb');
});
如何在使用相同实现的同时,以我可以调用和存储每个提供者的值的方式创建和ClientA
继承ClientB
提供者部分?BaseClient
clientAProvider.setSomething('aaa')
clientBProvider.setSomething('bbb')
setSomething
我有一堆这样的提供者(超过这两个),其中提供者部分总是相同的,配置实现总是相同的,但这些提供者的工厂部分是不同的。
想法?