我需要澄清依赖关系

时间:2014-12-16 00:34:53

标签: angularjs angularjs-scope

有什么区别:

myApp.controller('GreetingController',     ['$scope', function($scope) {
  $scope.greeting = 'Hola!';
}]);

   myApp.controller('GreetingController',      function($scope) {
  $scope.greeting = 'Hola!';
});

一些示例添加了范围的依赖性,而另一些则没有。

谢谢。

2 个答案:

答案 0 :(得分:1)

你的样本都注入了范围依赖,不同之处在于第一个使用数组表示法,它允许你创建自定义命名,在缩小时不会破坏等等......这是推荐的方法。例如,这很好用:

myApp.controller('GreetingController',     ['$scope', function(myScopeAlias) {
  myScopeAlias.greeting = 'Hola!';
}]);

请在此处查看:

angular.module('test', [])
  .controller('GreetingController', ['$scope', function(myScopeAlias) {
      myScopeAlias.greeting = 'Hola!';
  }]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="test" ng-controller="GreetingController">{{greeting}}</div>


  

依赖注释

     

Angular通过注入器调用某些功能(如服务工厂和控制器)。您需要注释这些函数,以便注入器知道要注入函数的服务。有三种方法可以使用服务名称信息注释代码:

  • 使用内联数组注释(首选)
  • 使用$ inject属性注释
  • 隐含地来自函数参数名称(有警告)

了解详情:https://docs.angularjs.org/guide/di#dependency-annotation

答案 1 :(得分:0)

我只想强调一点:

如果项目需要进行Uglification(大多数真实项目都需要进行uglification),请始终使用内联数组注释。

Building minification-safe Angular.js applications