refactor angular js factory to provider

时间:2016-08-25 11:12:36

标签: angularjs

我的程序中定义了一个名为'EntityName'的工厂。现在我想重构它作为提供者,因为我需要在提供者级别添加注册函数。 但是,我不想像现在这样使用现有工厂更改所有地方:

new EntityName()

所以我重构了我的工厂是这样的提供者:

myMoodule.provider('EntityName', function() {
    var _this = this;       
    _this.registerLabel = function registerLabel(name) {
          ...
    };
    _this.$get =  function (session, Logger) {
            var logger = new Logger('EntityName');
            return function EntityName(){...}
    }
)};

这样我可以在提供者级别(registerLabel)中使用这两种方法,而不需要使用New EntityName()重构所有位置

我的问题是 - 我是否可以在'服务'级别添加一些功能,并保留我不需要重构所有New EntityName()的事实:

例如我想要一个方法EntityName.replaceLabel()

(与var name = new EntityName()

中的对象无关

我希望服务公开更多功能 - 而不仅仅是构造函数。可能吗 ?我该怎么做? $ get将返回两个构造函数(因此我不需要更改所有其他位置)并且还公开其他方法并像使用任何其他服务一样使用它

0 个答案:

没有答案