Javascript 参数控制器不是函数,未定义-一页中有两个角度应用程序

Javascript 参数控制器不是函数,未定义-一页中有两个角度应用程序,javascript,angularjs,Javascript,Angularjs,我基本上有这样的东西 (函数(){ "严格使用",; 角度.module('app',[]).controller('AppController',AppController); AppController.$inject=['$scope']; 函数AppController($scope){ //控制器材料 } })(); (功能(){ "严格使用",; 元素(文档).ready(函数(){ 引导(document.getElementById('app'),['app']); }); }

我基本上有这样的东西

(函数(){
"严格使用",;
角度.module('app',[]).controller('AppController',AppController);
AppController.$inject=['$scope'];
函数AppController($scope){
//控制器材料
}
})();
(功能(){
"严格使用",;
元素(文档).ready(函数(){
引导(document.getElementById('app'),['app']);
});
})();

{{你好}}
var App=angular.module('DocApp',[]).controller('DocController',DocController);
DocController.$inject=['$scope'];
功能控制器($scope){
$scope.hello=“hello WORLD”;
}
bootstrap(document.getElementById('doc'),['DocApp']);

Angular解析页面时,在解析DOM树时会遇到指令。在您的情况下,它将在AppController之后解析DocController。因此,它希望DocController是一个注册模块(在您当前的应用程序范围内),它可以访问该模块

但是,直到之后,您才在单独的脚本标记中注册DocController,这意味着Angular在解析页面时未定义DocController,即使定义了DocController,也未将其注入到您的应用程序模块中

解决此问题的最简单方法是将脚本向上移动到应用程序入口点上方,但在AngularJS包含引用下方,以便在AngularJS引导应用程序并开始解析DOM然后注入之前对其进行解析和添加

由于该应用程序实际上只是另一个模块,因此一旦将其包括在内,您需要在应用程序模块中引用它,以便将其注入并可用:

angular.module('app', ['DocApp']).controller('AppController', AppController);

当您启动
应用程序
模块下面的整个DOM时
我深表歉意。在将代码从我的工作转换为SO时,我忘了更改它。我的代码中没有输入错误,我更新了OPrespectively@EmbattledSwag没问题。请看我的最新答案。