覆盖AngularJs服务

asd*_*cap 6 javascript angularjs

我正在制作一个AngularJs模块.问题是,这个模块假设与其他模块(它就像一个插件)一起工作.所以我基本上会从另一个模块导入这个模块.但是,这个模块中有一些服务,我想稍后从导入该模块的模块中覆盖它.我该怎么办?只是定义另一个具有相同名称的服务吗?如果是这样,我将如何获得原始服务?

mcc*_*inz 6

覆盖将根据模块的实例化顺序发生。创建的最后一个模块将优先于在其之前创建的具有重复服务的模块。

关于服务命名空间的 SO 链接:AngularJS 中的“命名空间”服务

普朗克:http ://plnkr.co/edit/P488AkNtGYGUXmo9gIAT?p=preview

  var dep1 = angular.module("dep1",[]);
  var dep2 = angular.module("dep2",[]);
  var app = angular.module("app",["dep2","dep1"]);

  dep1.factory("helloSrvc",function(){
    return {
      msg: "hello from dep1"
    }
  });

  dep2.factory("helloSrvc",function(){
    return {
      msg: "hello from dep2"
    }
  });

  app.controller("myCtrl", function(helloSrvc,$scope){
    $scope.msg = helloSrvc.msg;
  });

  angular.bootstrap(document,["app"]);
Run Code Online (Sandbox Code Playgroud)