L'injection de services en AngularJS directive contrôleur directement

Je comprends comment dépendance Angulaire des travaux d'injection avec les directives mais je voulais clarifier quelque chose. J'ai un mannequin de test directive comme suit:

app.directive("test", [

  function() {

    return {
      restrict: "E",
      scope: {},
      controller: ["$scope", "$filter",
        function($scope, $filter) {
          var food = ["Apple pie", "Apple cobler", "Banana Split", "Cherry Pie", "Applesauce"];

          $scope.favorites = $filter('filter')(food, "Apple");
        }
      ],
      template: "<div>{{favorites}}</div>"
    }
  }
]);

Cela fonctionne bien et filtre le food tableau comme prévu. Cependant j'ai remarqué que si j'injecte le $filter service dans la directive comme suit, ça fonctionne encore:

app.directive("test", ["$filter",

  function($filter) {

    return {
      restrict: "E",
      scope: {},
      controller: ["$scope",function($scope) {...

Ma question: Est-il préférable d'injecter des services dans une directive dans la déclaration de la ligne comme ceci:

app.directive("test", ["$filter", function($filter) {

ou dans le contrôleur de ligne comme ceci:

controller: ["$scope", "$filter", function($scope, $filter) {?

Il n'y a pas de différence? Voici une Plunker de la directive de code.

OriginalL'auteur TrazeK | 2014-08-04