Uncaught ReferenceError: App ist in Angularjs nicht definiert

8

Ich habe diesen Fehler bekommen. Ich habe die Antworten durchgesehen, aber ich habe immer noch das gleiche Problem.

index.html

%Vor%

app.js

%Vor%

loginController.js

%Vor%

Bitte überprüfen Sie den Code und sagen Sie mir, wo ich einen Fehler mache.

    
Prince 31.12.2014, 09:08
quelle

5 Antworten

7

Das ist eine gute Lektion zum Umfang. Wenn Sie Dinge in anonyme Funktionen ( function(){...}()); ) einfügen, werden Variablen, die in dieser Funktion deklariert sind, für Dinge außerhalb der Funktion unsichtbar. Ich werde in dieser Antwort nicht alle Javascript-Scope-Sachen durchgehen, weil es gut ist dokumentiert auf vielen anderen Fragen , aber im Wesentlichen ist dies Ihr Problem;

%Vor%

Kurz gesagt entfernen Sie die anonyme Funktion, die sich in Ihrem app.js befindet, oder deklarieren Sie die Variable app außerhalb der Funktion.

    
ug_ 31.12.2014, 09:14
quelle
7

Es sieht so aus, als ob alle anderen Antworten von Leuten stammen, die Angular JS nicht kennen, und nur von Javascript. Sie alle geben die gleiche falsche Antwort, was dazu führen kann, dass der Code funktioniert, aber eine schlechte Übung einführt.

Das Einpacken Ihres Codes in eine anonyme Funktion ist in Ordnung!

Das ist nicht das Problem. Das Problem ist, dass Sie Ihren Controller in eine separate Datei legen, aber vergessen haben, sie in ein separates Modul zu legen.

loginController.js

%Vor%

app.js

%Vor%

Diese Antwort wird durch das eckige Seed-Projekt unterstützt, auf das auch in den offiziellen eckigen Dokumenten verwiesen wird: Ссылка

    
wvdz 31.12.2014 09:18
quelle
3

Hatte den gleichen Fehler. In meinem Fall war es die Reihenfolge der Javascript-Dateien.

Ich musste sicherstellen, dass app.js vor der Datei service.js deklariert wurde (die Datei, die einen Verweis auf die App enthielt).

%Vor%

Außerdem könnte dieser Fehler ("App ist nicht definiert") durch einen Syntaxfehler in Ihrem JavaScript-Code verursacht werden. Überprüfen Sie daher Ihren Javascript-Code auf Syntaxfehler, wenn ein "Uncaught SyntaxError" damit verbunden ist.

    
40-Love 09.02.2017 21:57
quelle
2

Ihre App ist in einer anonymen Funktion definiert, sodass die App den Bereich enthält. Versuchen Sie, eine globale App-Variable zu erstellen.

%Vor%     
Naeem Shaikh 31.12.2014 09:11
quelle
1

Entfernen Sie die anonyme Funktion von app.js wie:

%Vor%

Und verschieben Sie auch Ihren startFrom -Filterregistrierungscode aus dem Controller-Block. Eine letzte Sache, dass Ihr Controller eine Abhängigkeitsinjektion zuletzt akzeptiert: Data , die nicht definiert ist, also entfernen Sie das auch.

Hoffe, das hilft!

    
Shashank Agrawal 31.12.2014 09:18
quelle

Tags und Links