我有两个这样定义的控制器:
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()?
要实例化控制器,您可以使用$controller
服务,该服务可以用字符串调用:
$controller('controllerA' /*, locals */);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句