Javascript 将子模块注入主模块

Javascript 将子模块注入主模块,javascript,angularjs,declaration,angularjs-controller,angularjs-module,Javascript,Angularjs,Declaration,Angularjs Controller,Angularjs Module,我想将我的子模块注入主应用程序,但我有注入错误 (错误:[ng:areq] 这是我的主要应用程序 这是我的子模块 我该怎么解决呢?谢谢!你把模块声明搞砸了。你声明了两次angular.module('app.newProject') 当您第一次注册时创建它时,请使用SelectionCtrl。之后,您创建了另一个同名的模块angular.module('app.newProject,[])具有依赖性并注册了TabController1控制器。当您创建第二个模块时,它会覆盖第一个模块&现在它只

我想将我的子模块注入主应用程序,但我有注入错误

(错误:[ng:areq]

这是我的主要应用程序

这是我的子模块


我该怎么解决呢?谢谢!

你把模块声明搞砸了。你声明了两次
angular.module('app.newProject')

当您第一次注册时创建它时,请使用
SelectionCtrl
。之后,您创建了另一个同名的模块
angular.module('app.newProject,[])
具有依赖性并注册了
TabController1
控制器。当您创建第二个模块时,它会覆盖第一个模块&现在它只有
TabController1
这就是为什么angular抛出错误
选择Ctrl
是必需的

有几种方法可以解决这个问题

方法1

创建一个模块并将其存储在某个变量中,并在需要时使用它

var controllerApp = angular.module('app.newProject', [])
.controller('SelectionCtrl',function(){ 
    //code here
});

controllerApp.controller('TabController1',function(){
 //your code here
});
方法2

创建一个模块,并且无论何时您想要使用它,都可以不依赖地使用它

angular.module('app.newProject', [])
.controller('SelectionCtrl',function(){ 
    //code here
});

angular.module('app.newProject').controller('TabController1',function(){
 //your code here
});
方法3(我不喜欢这种方法)

创建一个模块并以线性方式附加组件

angular.module('app.newProject', [])
.controller('SelectionCtrl',function(){ 
    //code here
})
.controller('TabController1',function(){
 //your code here
});

我希望您选择方法2,该方法将通过引用模块来绑定任何组件。

控制器应为
var controllerApp=angular.module('app.newProject',[]).controller('SelectionCtrl',function(){//code here})
second controller不应再次创建具有依赖性的模块,它应
controllerApp.controller('TabController1')
yeah,它正在工作,非常感谢('))),我可以在这里再问一个问题吗?如何将控制器与app.module.js分开?我的意思是我必须在controller.js中写控制器?不,不需要在controller.js中写控制器,只要你想从任何地方添加控制器,你只需要引用该模块。正如我在回答中解释的那样。选择2可以提供更大的灵活性。