Angularjs filtre personnalisé et l'injection de dépendance

Je suis nouveau sur AngularJS et je vois cette syntaxe beaucoup:

function someFunc(){
   return function(input){
    return 'hello' + input;
  }
}

La fonction ci-dessus est une syntaxe générale, j'ai tendance à voir beaucoup de choses mais le problème est spécifique à cet exemple de filtre personnalisé:

angular.module('bookFilters', [])
    .filter('newBookFilter', function(){
          return function(input){
        return 'The Book: ' + input.name + 'is new !';
   };
});

Je comprends que l'emballage de la fonction à une autre fonction me donne l'occasion d'utiliser l'injection de dépendance, Voici mes questions à ce sujet:

Le filtre d'obtenir la fonction renvoyée de l'emballage de la fonction? Alors est-il en mesure d'utiliser l'injection de dépendance pour injecter de la valeur dans la fonction? , En théorie, qu':

Ce code:

{{bookObj | newBookFilter}}

Deviendra:

{{   bookObj | function(input){return 'The Book: ' + input.name + 'is new !'; }  }}

Et enfin la {{}} sera de retour la dernière valeur de la fonction.

Pourquoi ne puis-je pas simplement d'injecter de l' input à la première fonction comme:

angular.module('bookFilters', [])
         .filter('newBookFilter', function(input){
             return 'The Book: ' + input.name + 'is new !';
     });

Pourquoi l'injection de dépendance ne fonctionnera que sur la fonction renvoyée?

Je sais que j'ai vraiment confus ici, Si quelqu'un peut m'aider je serai très reconnaissant, Merci à vous tous et bonne journée.

nous utilisons la même fonction (.le filtre) avec les mêmes paramètres => il devrait y avoir un seul de la mise en œuvre. Comment peut-angulaire cadre de différencier vos premier cas et votre deuxième cas?
si il y avait quelque chose comme ça, il y aurait 2 différentes fonctions similaires à ce que nous avons comme .factory et .service
Pouvez-vous m'aider à comprendre pourquoi angularjs nécessite 2 fonctions pour être en mesure d'utiliser l'injection de dépendance?
non, ce n'est pas que angular js nécessite 2 fonctions. Je veux dire, si il y avait plusieurs façons de déclarer un service (d'être injecté à d'autres), il doit y avoir des fonctions différentes, chacune mise en œuvre.

OriginalL'auteur Aviel Fedida | 2014-01-11