我想将我的子模块注入主应用程序,但是我有注入错误
(错误:[ng:areq] http://errors.angularjs.org/1.3.5/ng/areq?p0=SelectionCtrl&p1=not%20aNaNunction%2C%20got%20undefined
这是我的主要应用
这是我的子模块
我该如何解决?谢谢!
答案 0 :(得分:2)
你搞乱了模块声明。你宣布了angular.module('app.newProject')
两次。
在您第一次注册SelectionCtrl
时创建它。之后,您创建了另一个具有相同名称angular.module('app.newProject,[]')
且具有依赖性和已注册TabController1
控制器的模块。当你创建第二个模块时,它会覆盖第一个模块。现在它只有TabController1
,这就是为什么角度抛出错误SelectionCtrl
是必需的。
有几种appraoches解决了这种方法。
方法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,它将通过引用模块为您提供绑定组件。