我有两个控制器,它们的定义如下:
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()?
答案 0 :(得分:1)
要实例化控制器,您可以使用$controller
服务,该服务可以使用字符串调用:
$controller('controllerA' /*, locals */);