我会在我的部分文件中动态加载控制器,以便更好地组织我的代码。通过我的研究,我发现如果我想使用脚本标签从部分加载控制器,我需要包含 JQuery。
但是,这些方法似乎只有在我的控制器在全局范围内声明时才有效,即
function MainCtrl($scope) {}
如果我切换到在我的 controller.js 中使用模块
angular.module ("myApp").controller ("MainCtrl", function ($scope) {});
这不再适用于错误消息 “参数'MainCtrl'不是函数,未定义”
下面是一个证明这一点的plunker。
我怎样才能使这项工作?
注意 我没有故意在 index.html 中包含 controller.js。我想从 partial.html 加载控制器,因为它只会在那里使用。
编辑 阅读此问题后,我能够实现我想要的目标:AngularJS Dynamic loading a controller
这似乎是一种支持延迟加载的直接方法。希望 $controllerProvider.register 方法可以在未来的版本中通过 angular.module.controller 公开,以支持延迟加载。