Fehler: Unbekannter Provider: aProvider - a

7

Ich verwende AngularJS in einem Ruby on Rails 3.2.8 Projekt mit Assets.

Wenn ich mein Formular, das AngularJS auf meinem Entwicklungscomputer verwendet, auflade, habe ich kein Problem. Wenn ich jedoch dasselbe Formular auf meinem Produktionsserver lade, erhalte ich diesen Fehler in der Javascript-Konsole:

%Vor%

Ich habe es in meine coffeescript-Datei zurückverfolgt, wo ich AngularJS für die Verwendung in einem Formular eingerichtet habe:

%Vor%

Wenn ich das alles ausdekomme, wird die Seite ohne Fehler und ohne AngularJS-Fähigkeiten geladen.

Liegt das Problem daran, dass Rails-Ressourcen kompiliert und minimiert werden? Gibt es eine Möglichkeit, dies zu beheben und trotzdem Coffeescript und Rails-Assets zu verwenden?

    
map7 17.10.2012, 04:29
quelle

3 Antworten

20

AngularJS verwendet, wenn Sie den gerade verwendeten Stil (Pretotyping genannt) verwenden, die Funktionsargumentnamen, um die Abhängigkeitsinjektion durchzuführen. Also ja, Minification bricht das komplett.

Die Lösung ist jedoch einfach. Verwenden Sie in jedem Fall, in dem Sie eine Injektion benötigen (verwenden Sie $ xxx), Folgendes:

%Vor%

Ersetzen Sie im Grunde alle Funktionsdefinitionen durch ein Array. Das letzte Element sollte die Funktionsdefinition selbst sein, und die ersten sind die $names der Objekte, die Sie injizieren möchten.

Es gibt noch mehr (wenn auch nicht eindeutige) Informationen über die Dokumentation .

    
Sudhir Jonathan 17.10.2012, 09:48
quelle
6

Wenn Sie die Array-Notation irgendwo vermissen, müssen wir, um dies zu finden, den Winkelcode etwas ändern, aber es ist eine sehr schnelle Lösung.

change ist console.log ("Array-Notation fehlt", fn); (Zeile Nr. 11 von Funktionsstart)

Finden Sie die Annotate-Funktion in angular.js (nicht-minimiert)

%Vor%     
Deepak Patil 17.04.2014 10:00
quelle
0

Um Winkel zu verkleinern, müssen Sie lediglich Ihre Deklaration in die "Array" -Deklaration "mode" ändern, zum Beispiel:

Von:

%Vor%

Um

%Vor%

Wie deklariert man Werksdienste?

%Vor%     
Dalorzo 18.09.2014 15:16
quelle