Ich erhalte immer wieder diesen Fehler, wenn ich versuche, das Bootstrap-Modal-Fenster zu implementieren. Was könnte die Ursache dafür sein? Ich habe hier alles von http://angular-ui.github.io/bootstrap/#/modal kopiert / eingefügt .
Ich erhalte immer wieder diesen Fehler, wenn ich versuche, das Bootstrap-Modal-Fenster zu implementieren. Was könnte die Ursache dafür sein? Ich habe hier alles von http://angular-ui.github.io/bootstrap/#/modal kopiert / eingefügt .
Diese Art von Fehler tritt auf, wenn Sie eine Abhängigkeit für einen Controller, einen Dienst usw. schreiben und diese Abhängigkeit nicht erstellt oder eingeschlossen haben.
In diesem Fall $modal
ist kein Dienst bekannt. Es hört sich so an, als hätten Sie UI-Bootstrap nicht als Abhängigkeit beim Bootstrapping-Winkel übergeben. angular.module('myModule', ['ui.bootstrap']);
Stellen Sie außerdem sicher, dass Sie die neueste Version von ui-bootstrap (0.6.0) verwenden, um die Sicherheit zu gewährleisten.
Der Fehler wird in Version 0.5.0 ausgelöst, aber durch die Aktualisierung auf 0.6.0 wird der Dienst $ modal verfügbar. Aktualisieren Sie also auf Version 0.6.0 und stellen Sie sicher, dass Sie bei der Registrierung Ihres Moduls ui.boostrap benötigen.
Antwort auf Ihren Kommentar: So fügen Sie eine Modulabhängigkeit ein.
<!-- tell Angular what module we are bootstrapping -->
<html ng-app="myApp" ng-controller="myCtrl">
js:
// create the module, pass in modules it depends on
var app = angular.module('myApp', ['ui.bootstrap']);
// $modal service is now available via the ui.bootstrap module we passed in to our module
app.controller('myCtrl', function($scope, $uibModal) {
});
Der $modal
Dienst wurde in umbenannt $uibModal
.
Beispiel mit $ uibModal
// create the module, pass in modules it depends on
var app = angular.module('myApp', ['ui.bootstrap']);
// $modal service is now available via the ui.bootstrap module we passed in to our module
app.controller('myCtrl', function($scope, $uibModal) {
//code here
});
5 Jahre später (dies wäre damals nicht das Problem gewesen) :
Der Namespace hat sich geändert. Möglicherweise stoßen Sie nach dem Upgrade auf eine neuere Version von bootstrap-ui auf diese Meldung . Sie müssen sich auf
$uibModal
& beziehen$uibModalInstance
.quelle
Nur eine zusätzliche Randnotiz für ein Problem, das ich heute auch hatte: Ich hatte einen ähnlichen Fehler "Unbekannter Anbieter: $ aProvider", als ich die Minimierung / Uglifizierung meines Quellcodes aktivierte .
Wie im Tutorial zu Angular-Dokumenten (Absatz: "Ein Hinweis zur Minimierung") erwähnt , müssen Sie die Array-Syntax verwenden, um sicherzustellen, dass die Referenzen für die Abhängigkeitsinjektion korrekt aufbewahrt werden:
Für das Angular UI Bootstrap-Beispiel, das Sie erwähnen, sollten Sie dies ersetzen:
mit dieser Array-Notation:
Mit dieser Änderung war mein minimierter modaler Angular UI-Fenstercode wieder funktionsfähig.
quelle
Die offensichtliche Antwort auf den Providerfehler ist die fehlende Abhängigkeit beim Deklarieren eines Moduls wie beim Hinzufügen von UI-Bootstrap. Das einzige, was viele von uns nicht berücksichtigen, sind die grundlegenden Änderungen beim Upgrade auf eine neue Version. Ja, Folgendes sollte funktionieren und den Anbieterfehler nicht auslösen:
Außer wenn wir eine neue Version von ui-boostrap verwenden. Der modale Anbieter ist jetzt definiert als:
Der Ratschlag hier lautet: Sobald wir sichergestellt haben, dass die Abhängigkeiten enthalten sind und dieser Fehler weiterhin auftritt, sollten wir überprüfen, welche Version der JS-Bibliothek wir verwenden. Wir könnten auch eine schnelle Suche durchführen und feststellen, ob dieser Anbieter in der Datei vorhanden ist.
In diesem Fall sollte der modale Anbieter nun wie folgt lauten:
Noch eine Anmerkung. Stellen Sie sicher, dass Ihre UI-Bootstrap-Version Ihre aktuelle AngularJS-Version unterstützt. Wenn nicht, erhalten Sie möglicherweise andere Fehler wie templateProvider.
Weitere Informationen finden Sie unter folgendem Link:
http://www.ozkary.com/2016/01/angularjs-unknown-provider-modalprovider.html
ich hoffe es hilft.
quelle
Nachdem ich überprüft hatte, ob alle Abhängigkeiten enthalten waren, habe ich das Problem durch Umbenennen
$modal
in$uibmodal
und$modalInstance
auf behoben$uibModalInstance
quelle
quelle