2016-08-23 36 views
0

我已经在两个服务,我正在使用多个控制器如何根据在angularjs一些参数

但在任何时间点我现在我将同时使用的服务的一组功能选择服务在所有的地方手动更改服务名称,如果我想 功能1()

服务2 功能1()服务

服务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) 
       } 

      } 



    }) 

我正在寻找方式在那里,如果我设置在根范围内的一些参数在同一个地方对应的服务名称应该拿起有没有办法做到这一点,请帮助

+0

你和你在哪里打电话给控制器? –

+0

我在路由 –

+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应用中使用了这个结构。

+0

我在几个控制器中有这些方法如何处理 –

+0

您可以将选择方法放入服务中,然后使用您的参数调用服务方法(以选择要调用的方法)。 – rrd