Angularjs benutzerdefinierte Filter- und Abhängigkeitsinjektion

Ich bin neu in AngularJS und sehe diese Syntax oft:

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

Die obige Funktion ist eine allgemeine Syntax, die ich häufig sehe, aber das Problem ist in diesem Beispiel für benutzerdefinierte Filter spezifisch:

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

Ich verstehe, dass das Umschließen der Funktion mit einer anderen Funktion mir die Möglichkeit gibt, die Abhängigkeitsinjektion zu verwenden. Hier sind meine Fragen dazu:

Erhält der Filter die von der Wrapping-Funktion zurückgegebene Funktion? Kann es dann die Abhängigkeitsinjektion verwenden, um den Wert in die Funktion zu injizieren?Theoretisch ist das:

Dieser Code:

{{bookObj | newBookFilter}}

Wird werden:

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

Und zum Schluss die{{}} gibt den endgültigen Wert der Funktion zurück.

Warum kann ich das nicht einfach spritzen?input zur ersten Funktion wie:

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

Warum funktioniert die Abhängigkeitsinjektion nur mit der zurückgegebenen Funktion?

Ich weiß, dass ich hier wirklich verwirrt bin. Wenn mir jemand helfen kann, werde ich sehr dankbar sein. Ich danke Ihnen allen und wünsche Ihnen einen schönen Tag.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage