it-swarm.com.de

Angular JS Uncaught Error: [$ injector: modulerr]

Ich habe ein Problem mit Angular JS erhält eine Fehlermeldung: Uncaught Error: [$ injector: modulerr]. Meine JS-Datei sieht so aus

angular.module('MyApp', ['ngRoute']);
angular.module('MyApp',['ngResource']);
function TwitterCtrl($scope,$resource){
}

Ich habe auch Angular-Route-Js aufgenommen

 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js">     
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-route.min.js">

Angular-Dokumentation besagt, dass das Problem http://docs.angularjs.org/api/ngRoute ist

48
ig-melnyk

Versuchen Sie Folgendes hinzuzufügen:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-resource.min.js"></script>
45
Lauri Elias

In der Entwicklung empfehle ich die Verwendung von nicht minimierte Distributiven: Und alle Fehler werden informativer! Verwenden Sie stattdessen angular.min.js angular.js

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.js">     
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-route.js">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-resource.js">
37
ulmer-morozov

Versuchen Sie Folgendes hinzuzufügen:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-resource.min.js">

und:

angular.module('MyApp', ['ngRoute','ngResource']);
function TwitterCtrl($scope,$resource){
}

Sie sollten angular.module Nur einmal mit allen Abhängigkeiten aufrufen, da Sie mit Ihrem aktuellen Code ein neues MyApp Modul erstellen , das überschreibt Der vorherige.

Von Winkeldokumentation :

Beachten Sie, dass mit angle.module ('myModule', []) das Modul myModule erstellt und jedes vorhandene Modul mit dem Namen myModule überschrieben wird. Verwenden Sie angle.module ('myModule'), um ein vorhandenes Modul abzurufen.

34
Khanh TO

Vergewissern Sie sich, dass Ihre Funktion in einem Verschluss eingeschlossen ist, und fügen Sie das extra () am Ende hinzu:

(function(){                                                                     

    var app = angular.module('myApp', []);                                     


})();  
12
ContextSwitch

Ich hatte vorher das gleiche Problem, aber mir wurde klar, dass ich das "app.js "(die Hauptanwendung) auf meiner Hauptseite (index.html). Selbst wenn Sie alle für AngularJS erforderlichen Abhängigkeiten einbeziehen, wird dieser Fehler möglicherweise in der Konsole angezeigt. Stellen Sie also immer sicher, dass die erforderlichen Dateien auf Ihrer Hauptseite enthalten sind, und Sie sollten dieses Problem nicht haben.

Hoffe das hilft.

6
AllJs

Das Problem wurde durch das Fehlen des Moduls ngRoute verursacht. Seit Version 1.1.6 ist es ein separater Teil:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>

var app = angular.module('myapp', ['ngRoute']);

Dies bezieht sich auf: AngularJS 1.2 $ injector: modulerr David answer

4
Arun Sharma

Ich habe diesen Fehler erhalten, weil ich von einem anderen Modul abhängig war, das nicht geladen wurde.

angle.module ("app", ["kendo.directives"]). controller ("MyCtrl", function () {} ...

obwohl ich alle Angular Module hatte, hatte ich kein Kendo.

4
Sibele Lima

Ich hatte das gleiche problem Sie sollten Ihren Angular js-Code außerhalb einer Funktion wie dieser eingeben:

$( document ).ready(function() {});
4
Julia

Stellen Sie sicher, dass die Variable, in der sich Ihr angle.module befindet, korrekt strukturiert ist.

Dies wird mit "Uncaught Error: [$ injector: modulerr]" fehlschlagen:

var angApp = angular.module("angApp");

Das funktioniert:

var angApp = angular.module("angApp", []);

Es ist ein hinterhältiger Fehler, da die Fehlermeldung nicht auf eine bestimmte Sache hinweist (daher die große Auswahl an Antworten). Darüber hinaus werden die meisten js Linters die Details nicht erfassen. Weiter so!

3
isaacdre

Ich hatte genau das gleiche Problem und was es löste, war entfernen Sie den Verschluss:

$(function(){
    var app = angular.module("myApp", []); 
    app.controller('myController', function(){
        ...
    });
});

wird zu:

var app = angular.module("myApp", []); 
app.controller('myController', function(){
    ...
});
2
L01c

ok, wenn du einen Uncaught Error: [$injector:modulerr] bekommst und das angular Modul in dem Fehler ist, der dir sagt, dass du ein doppeltes ng-app Modul hast.

2
Herb Williams

Der Fehler bedeutet, dass der Abhängigkeitsinjektor die Abhängigkeit 'ngResource' nicht finden konnte. Das Skript-Tag in der akzeptierten Antwort liefert diese Abhängigkeit.

Dieselbe Fehlermeldung wird auch angezeigt, wenn Sie in den Abhängigkeiten benutzerdefinierte Module hinzufügen, jedoch nicht das Skript-Tag zum Einschließen der JS-Datei mit der Abhängigkeit hinzugefügt haben.

1
Chandan Gupta

Ich hatte auch das gleiche Problem, ich habe gerade folgende Codezeile aus der Datei BundleConfig.cs entfernt und mein Code funktioniert einwandfrei.

BundleTable.EnableOptimizations = true;

1

Wenn ich dies einfach wegwerfe, falls es hilft, hatte ich dieses Problem und der Grund für mich war, dass ich die Haupt-App-Datei als "AngularWebApp" anstelle von "AngularWebApp" bezeichnet habe, als ich mein Angular) - Zeug gebündelt habe. js ", hoffe das hilft.

1
Trevor Hart

Laden Sie kein Javascript in das CDN-Link-Skript-Tag. Verwenden Sie ein separates Skript-Tag, um die AngularJs-Skripte zu laden. Ich hatte das gleiche Problem, aber ich habe ein separates <script> Dann ist der Fehler weg.

0
user9359822