使用模块注册控制器时

时间:2014-09-02 13:53:11

标签: angularjs angularjs-controller

我有两个功能代码用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 个答案:

答案 0 :(得分:1)

Angular中的模块是一种将相关代码逻辑打包成块的方法。这些块可以在以后编写(想想其他语言的第三方库)。

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

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

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

Module Documentation.