如何根据angularjs中的某些参数选择服务

时间:2016-08-23 07:04:27

标签: angularjs service controller rootscope

我在两个服务中设置了一组功能,我在多个控制器中使用

但是任何时间点我都会使用其中一种服务现在我手动更改所有地方的服务名称,如果我想在服务之间切换

服务1 功能1()

服务2 功能1()

控制器中的

    app.controller("appsController", function ($scope, googleMapService,leafLetMapService) {
      function plotMarkersFromApi(deviceDetailsArray){
            for(var k=0;k<deviceDetailsArray.length;k++){

                    /*googleMapService.addMarkers('camera',deviceDetailsArray[k].lat,deviceDetailsArray[k].lng,deviceDetailsArray[k].id,false)*/

//here manually i will switch between   googleMapService and  leafLetMapService             googleMapService.addMarkers(deviceDetailsArray[k].lat,deviceDetailsArray[k].lng)
                }

            }



    })

我正在寻找方法如果我在根目录中设置一些参数在一个地方应该拿起相应的服务名称有没有办法做到这一点请帮助

1 个答案:

答案 0 :(得分:0)

您可以使用这种结构:

app.controller('controller', function ($scope, etc) {
  function plotMarkersFromApi(array) {
    var serviceArray = {
      'matchOne': 'service1',
      'matchTwo': 'service2'
    };

    for(var k=0; k<array.length; k++) {
      // Assume array[k] is your variable that will alter
      // ie 'matchOne', 'matchTwo'
      serviceArray[array[k]].function1();
    }
  }
})

尚未对此进行测试,但最近在AngularJS应用中使用了此结构。