我有两个功能代码用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(){
...
});
什么是最佳解决方案?为什么使用模块包含几个控制器?谢谢。
答案 0 :(得分:1)
Angular中的模块是一种将相关代码逻辑打包成块的方法。这些块可以在以后编写(想想其他语言的第三方库)。
这通常是您将外部Angular代码(来自github等)包含到项目中的方式。外部项目创建一个模块供您用作模块依赖项。这是angular.module('myApp', ['myDependency'])
方式。
这是一个可选功能,但在大型(或自然隔离的)项目中非常有用。
如果您不需要模块。我建议你使用更简单的(第一个)解决方案。