$uibModalInstance indéfini (AngularJS de l'INTERFACE utilisateur.Bootstrap)
Pourquoi est $uibModalInstance pas pu être injectés ici?
http://plnkr.co/edit/mi9Ytv0HaqE47ENod4Gn?p=preview
baseController.$inject = ['$uibModal', '$uibModalInstance'];
function baseController($uibModal, $uibModalInstance) {
self.ok = function () {
$uibModalInstance.close(self.selected.item);
};
self.cancel = function () {
$uibModalInstance.dismiss('cancel');
};
Je suis en train d'essayer d'accéder à $uibModalInstance et si j'essaie d'injecter, je reçois une injection d'erreur.
Si je n'ai pas l'injecter, alors il est Indéfini...
Votre
Déplacement de l'interface utilisateur.bootstrap' provoque alors la baseController.$injecter = ['$uibModal']; à l'erreur avec $uibModal comme indéfini...
Pouvez-vous mettre à jour votre plunkr avec le changement que vous avez fait. Vous obtenez cette erreur parce que votre module n'est pas l'enregistrement de sa dépendance angulaire de bootstrap.
Voici fourche plkr = plnkr.co/modifier/9BHqbFkI1nIlQ9umQSZv?p=preview
Même chose dans
.module
doit dépendre angularui-bootstrap, utilisez angular.module('app', ['ui.bootstrap']);
au lieu de app.module.jsDéplacement de l'interface utilisateur.bootstrap' provoque alors la baseController.$injecter = ['$uibModal']; à l'erreur avec $uibModal comme indéfini...
Pouvez-vous mettre à jour votre plunkr avec le changement que vous avez fait. Vous obtenez cette erreur parce que votre module n'est pas l'enregistrement de sa dépendance angulaire de bootstrap.
Voici fourche plkr = plnkr.co/modifier/9BHqbFkI1nIlQ9umQSZv?p=preview
Même chose dans
baseController.js
utilisation angular.module('app', ['ui.bootstrap']).controller('BaseController', baseController);
parce que vous appelez .module
à plusieurs endroits, vous devez vous inscrire à cette dépendance à nouveau. Sinon dans module.js
vous pourriez faire var myApp = angular.module("app", ['ui.bootstrap'])
et puis à chaque fois que vous essayez de créer un nouveau contrôleur de l'utilisation myApp.controller("name", Function)
à la place.OriginalL'auteur RenleyRenfield | 2015-11-17
Vous devez vous connecter pour publier un commentaire.
Donc BEAUCOUP de grandes déclarations, mais aucun d'entre eux tout à fait résolu le problème.
amg-argh obtenu mon plkr de travail avec la façon dont j'avais mis en place mon injection
http://plnkr.co/edit/GXXmUosUEnEO3Tk0gUyp?p=preview
Le plus grand de la magie est venu de cette édition ici...
+++++++++++++++++++++++++++++
Je tiens également à noter que cela DEVRAIT être fait plus tard en tant que Service, tout comme icfantv a souligné. Mais j'ai besoin de comprendre la syntaxe de la retourner et de la consommation de la modale de la promesse...
Merci à vous tous pour votre aide!!
Cheers!
OriginalL'auteur RenleyRenfield
Je soupçonne que la raison pour laquelle le code est un échec parce que vous essayez d'injecter de l'modal exemple dans le contrôleur dont la responsabilité est de créer le modal. Il ne peut pas injecter, car il n'existe pas encore. Essayez d'utiliser des contrôleurs distincts: l'un pour ouvrir le modal et l'autre pour le traitement de la modale de contenu. Vous pouvez en voir un exemple dans la partie de Javascript de notre modal exemple.
TBH, je n'ai jamais vu dépendances injecté de cette façon avant. Est-il un problème de vous aidez à résoudre en faisant cela? Une raison quelconque vous n'êtes pas simplement en utilisant:
tu veux dire
$q
? La documentation est ici: docs.angularjs.org/api/ng/service/$qOriginalL'auteur icfantv
Il y avait quelques choses de mal avec votre plunk exemple:
L'ordre dans lequel vous chargez vos scripts est important, vous avez eu:
Cela ne fonctionne pas comme app.module.js dépend de la angular-ui-bootstrap.js et childController.js dépend angular-animate.js et childController.js dépend baseController.js Vous avez besoin de charger les scripts dans l'ordre suivant:
Dans childcontroller.js, vous avez:
Qui est de recréer et d'écraser l'application créée dans le app.module.js. Vous devez injecter le ngAnimate module dans votre app.module.js comme:
Vous n'avez pas besoin d'une référence à $uibModalInstance dans votre contrôleur de base, l':
vous donne accès à la modale vous ouvert par le biais de la var modalInstance " qui a fermer et licencier les méthodes.
OriginalL'auteur Rob J