将子模块注入主模块

Inject sub module to main module

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

(错误:[ng:areq] http://errors.angularjs.org/1.3.5/ng/areq?p0=SelectionCtrl&p1=not%20aNaNunction%2C%20got%20undefined

这是我的主要应用程序

这是我的子模块

我该如何解决?谢谢!

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

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

有几种方法可以解决此方法。

方法一

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

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

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

方法二

创建一个模块,想用就用,不用依赖。

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,它可以让您通过引用模块来绑定任何组件。