javascript - 我怎样才能延长服务

标签 javascript angularjs

我对 angularjs 还很陌生并且找不到任何文档或示例。我想要做的是扩展基本服务,以便我可以使用其他服务的基本服务下定义的方法。例如,假设我有如下基本服务。

angular.module('myServices', []).

    factory('BasicService', function($http){
        var some_arg = 'abcd'
        var BasicService = {
            method_one: function(arg=some_arg){ /*code for method one*/},
            method_two: function(arg=some_arg){ /*code for method two*/},
            method_three: function(arg=some_arg){ /*code for method three*/},
        });
        return BasicService;
    }   
);

现在我想定义一个从上面的 BasicService 扩展的扩展服务,这样我就可以使用我的扩展服务中 BasicService 下定义的方法。也许是这样的:

    factory('ExtendedService', function($http){
        var ExtendedService = BasicService();
        ExtendedService['method_four'] = function(){/* code for method four */}
        return ExtendedService;
    }

最佳答案

更简洁和命令式的方式

.factory('ExtendedService', function($http, BasicService){

    var extended = angular.extend(BasicService, {})
    extended.method = function() {
        // ...
    }
    return extended;
}

关于javascript - 我怎样才能延长服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15293943/

相关文章:

javascript - jsx 中无法识别 bool 值?

javascript - angularjs 动态改变模型绑定(bind)

Javascript:破折号的点符号?

javascript - 使用 vanilla JS/CSS 动画打开/关闭顶部导航栏

JavaScript ES6 模块 : Avoid Polluting Global Namespace

javascript - Adal.js 在没有重定向的情况下注销

javascript - 当字段为空时,Angular 会传递 undefined

javascript - Protractor 可访问性报告

javascript - AngularJS 中的依赖注入(inject)是否仅适用于 Angular "Objects"?

javascript - 无法在使用 SSL 的服务器中获取 css 和 js 文件