动态调用serviceName.functionName Angular

时间:2016-09-27 12:21:58

标签: javascript angularjs

我调用一个函数

getData('serviceName', 'functionName')

该功能看起来像

function getData(service, functionName){
    service.functionName(request, $root.thing).then()
}

但我总是得到service.function不是函数,我该如何正确调用它?

fiddle

2 个答案:

答案 0 :(得分:2)

如果使用括号表示法,则可以达到想要的效果

function getData(service, functionName){
    service[functionName](request, $root.thing).then()
}

答案 1 :(得分:0)

function getData(service, functionName){
  var yourservice = $injector.get(service);
  yourservice.yourActualfunctionName(request, $root.thing).then() 
}    

你可以确保将你的服务用作字符串,像这样使用它。确保你在任何地方使用它注入$ injector。不确定函数名称,因为函数不在同一个文件中。