angular.module(" app",[])和angular.module(" app")之间有什么区别?

时间:2015-08-26 11:29:00

标签: javascript angularjs

在ng-book中指定angular.module("app",[])方法称为Angular模块的setter方法,angular.module("app")方法称为getter方法,我们可以得到Angular模块 以后参考。我所理解的是,早期用于一些依赖注入,对于后来的模块,我不知道。在第二个模块定义中,我们可以得到Angular模块供以后参考,这是什么意思?

3 个答案:

答案 0 :(得分:3)

angular.module("app",[])您实际上正在定义一个模块。

(function(){
 // define sub modules
 var subModule1 = angular.module('SubModule1',[]);
 var subModule2 = angular.module('SubModule2',[]);
 // define main module and import/register sub modules with main module sub modules
 var main = angular.module('MainModule',['subModule1', 'subModule2']);
}());

使用angular.module("MainModule")您将获得对MainModule的引用,然后您可以创建新的控制器&该模块中的服务。

(function() {
  var app = angular.module('App');
  app.controller('SkillController', function($scope, SkillService) {
    $scope.skills = ['Java', 'JavaScript'];
    $scope.skillName;
    $scope.addSkill = function() {
      SkillService.addSkill($scope.skills, $scope.skillName);
      $scope.skillName = '';
    };
    $scope.removeSkill = function(skillIndex) {
      console.log(' skillIndex : ' + skillIndex);
      SkillService.removeSkill($scope.skills, skillIndex);
    };
  });
 }());

http://plnkr.co/edit/BGcuxM?p=info

答案 1 :(得分:1)

  

angular.module('',[]);

将创建指定名称的新模块,其中数组是您希望在新模块中可用的相关模块集。这也将返回新创建的模块。

  

angular.module('&#39);

将通过您在创建模块时定义的名称检索模块的实例。

注意:您应该只创建一次模块,因为您不想覆盖您已创建的内容。

答案 2 :(得分:1)

使用angular.module('myModule', [])将创建模块myModule并覆盖任何名为myModule的现有模块。这个数组是app依赖的模块列表。

使用angular.module('myModule')检索现有模块。