如何从变量动态调用工厂方法?

时间:2015-02-11 15:06:07

标签: javascript angularjs angularjs-factory dynamic-variables

我有一个服务,它将返回工厂的名称。我已将所有工厂注入控制器。我需要使用变量来调用该工厂内的方法。我知道我可以使用

if(var == 'factoryname') {
     factoryname.method()
}

但我不希望那些条件,因为我有很多工厂。有没有办法在java脚本中调用该工厂内的方法
window[var]

1 个答案:

答案 0 :(得分:3)

您应该考虑将所有工厂存储在对象上:

var factories = {
  factoryA: { method: function() {} },
  factoryB: { method: function() {} },
};

var factory = 'factoryA';

factories[factory].method();