Smart: AngularJS-Methoden

Hallo Forum,

ich habe eine Frage bezüliche der Schreibweise der AngularJS-Methoden. Als Beispiel nehme ich die var angular.module('website', []).config. Ich sehe da zwei unterschiedliche Schreibweise:

angular.module('website', []).config(function($routeProvider) { });

und

angular.module('website', []).config(['$routeProvider', function($routeProvider) { }]);

Wenn ich micht nicht irre, nimmt die config-Methode im ersten Beispiel nur die "function($routeProvider) { }" als Parameter an. Im zweiten Beispiel hat Sie ein Array als Parameter. Was bedutet bzw. welche Rolle spielt '$routeProvider' im zweiten Bepiel im Array-Parameter? Wie im ersten Beispiel zu sehen ist, funktioniert das Ganze auch ohne.

Danke im Voraus.

  1. Tach!

    ich habe eine Frage bezüliche der Schreibweise der AngularJS-Methoden. Ich sehe da zwei unterschiedliche Schreibweise:

    Siehe Tutorial zu Dependency Injection im Abschnitt "A Note on Minification".

    dedlfix.

    1. Hallo,

      danke. Habe ich das richrig verstanden, dass der String der Name des dependency ist, den man angeben muss, damit die Abhängigkeit von Angular korrekt identifiziert werden kann?

      Gruß

      1. Tach!

        Habe ich das richrig verstanden, dass der String der Name des dependency ist, den man angeben muss, damit die Abhängigkeit von Angular korrekt identifiziert werden kann?

        Ja, aber nur wenn es um Minifikation geht, denn da werden die eigentlichen Namen vom Minifizierer unter Umständen umbenannt. Die passen dann nicht mehr zu Namen, die in Strings stehen und dort nicht umbenannt werden können. Ansonsten kann die Dependency-Injection von Angular die Namen auch aus den Parametern selbst lesen.

        dedlfix.

        1. Hallo,

          woher weiss mann, wann es um die Minifikationen geht? Ich habe auch gedacht, dass man gerade deshalb die Strings als Paramertern übergint, weil die eigentlichen Namen ja vom Angular umbenannt werden. Sonst kann ja u.U. nicht mehr nachvollzogen werden, was was ist.

          Gruß

          1. Tach!

            woher weiss mann, wann es um die Minifikationen geht?

            Du weißt das, wenn du solche Tools verwendest. Oder wenn du deinen Code nicht nur für dich sondern andere schreibst, die Minifikation verwenden könnten.

            Ich habe auch gedacht, dass man gerade deshalb die Strings als Paramertern übergint, weil die eigentlichen Namen ja vom Angular umbenannt werden.

            Nein, Angular selbst nimmt keine Veränderungen an deinem Code vor. Du kannst den Aspekt auch ganz ignorieren, wenn du lediglich selbst der Nutznießer bist und keine Minifikationstools einzusetzen gedenkst. Andererseits schadet es auch nicht, die erweiterte Schreibweise zu verwenden. Jedoch muss man dann beim Refactoring aufpassen, dass du beide Stellen änderst, wenn dir der Name eines Parameters aus irgendeinem Grund nicht mehr passt.

            dedlfix.

            1. danke schön.

              Gruß