angularjs - 获取控制器函数并将其传递给$ injector.invoke()

时间:2014-04-16 08:06:21

标签: angularjs controller

我有两个控制器,它们的定义如下:

function ControllerA(DependencyA, DependencyB) {
    // code
}

function ControllerB(DependencyC, DependencyD) {
    // code
    $injector.invoke(ControllerA);
}

但是,为了支持缩小,我修改了控制器定义:

myApp.controller('controllerA', ['DependencyA', 'DependencyB' 
    function (DependencyA, DependencyB) {
    // code
}]);


myApp.controller('controllerB', ['DependencyC', 'DependencyD']
    function (DependencyC, DependencyD) {
        // $injector.invoke(controllerA) // ReferenceError: controllerA is not defined 
}]);

问题是$ injector.invoke()需要一个函数作为参数,所以问题是如何将controllerA传递给$ injector.invoke()?

1 个答案:

答案 0 :(得分:1)

要实例化控制器,您可以使用$controller服务,该服务可以使用字符串调用:

$controller('controllerA' /*, locals */);