2014-09-02 94 views
0

我有两个功能代码注册控制器与Angular。当使用模块注册控制器

第一代码是:

在app.js:

var app = angular.module('myapp', ['...']); 
app.config(... 

    $stateProvider 
    .state('first', { 
     url: '/first', 
     templateUrl: 'first.html', 
     controller: 'myController1' 
    }).state('second', { 
     url: '/second', 
     templateUrl: 'second.html', 
     controller: 'myController2' 
    }); 
); 

在myControllers.js

app.controller('myController1', function(){ 
     ... 
}); 

app.controller('myController2', function(){ 
     ... 
}); 

第二代码是:

在app.js:

var app = angular.module('myapp', ['...', 'myControllers']); 
app.config(... 

    $stateProvider 
    .state('first', { 
     url: '/first', 
     templateUrl: 'first.html', 
     controller: 'myController1' 
    }).state('second', { 
     url: '/second', 
     templateUrl: 'second.html', 
     controller: 'myController2' 
    }); 
); 

在myControllers.js

var myControllers = angular.module('myControllers', []); 

myControllers.controller('myController1', function(){ 
     ... 
}); 

myControllers.controller('myController2', function(){ 
     ... 
}); 

什么是最好的解决办法吗?为什么使用模块包含几个控制器?谢谢。

回答

1

Angular中的模块是将相关代码逻辑打包为块的一种方式。这些块可以稍后组成(考虑其他语言的第三方库)。

这通常是如何包含外部Angular代码(从github等)到您的项目。外部项目创建一个模块,供您用作模块依赖项。这是angular.module('myApp', ['myDependency'])的方式。

这是一个可选功能,但可用于大型(或自然隔离)的项目。

如果您不需要模块。我建议你使用更简单的(第一个)解决方案。

Module Documentation.