10
votes

Ui angulaire bootstrap $ périmètre. $ Modalinstance.close causes: impossible de lire la propriété "valeur" de non définie

J'ai quelques modaux, 2 fonctionnent parfaitement, 1 obtient cette exception lors de la fermeture. (Cela parvient à fermer les journaux modaux, mais anguleux de cette exception).

J'ai regardé plus près et, le $ modalinstance est défini à l'intérieur de la méthode Fermer , mais ouvertwindowows.get ($ modalinstance) retours non défini .

Comment puis-je résoudre ce problème?


2 commentaires

Pouvez-vous créer un violon?


Je reçois ça aussi. La première ferme est réussie, la seconde a cette erreur. Enquêter sur.


4 Réponses :


16
votes

Ceci est un bogue en $ modal dans V0.10.0. Voir Ce problème GITUB et sera corrigé dans la prochaine version.

@ivanzh a fourni une réponse à une question similaire ici - rejeter le mode de modification angulaire de l'URL - erreurs dans la console

dans votre contrôleur, une fois que vous faites $ modal.Open, ajoutez un bloc enfin où vous définissez explicitement le modalinstance sur NULL. Plunkr de licenciement Modal sur URL Le changement est disponible dans la question ci-dessus. Le tien devrait être très similaire. xxx


0 commentaires

0
votes

Cette méthode n'a pas bien fonctionné pour moi.

J'ai aussi eu des messages indéfinis «valeur», d'une série de dialogues en fonction de l'état d'application. Une boîte de dialogue était une icône de filature "Votre demande est le traitement", qui a été fermée dans la portée parente une fois que la requête HTTP $ est résolue. P>

mais il ne ferait pas de fermeture en utilisant ceci et le résultat susmentionné.Tendre: p> xxx pré>

Tout a commencé à fonctionner lorsque je suis passé à: p>

$scope.modalInstance.result.then(function() {
        ...
       $scope.modalInstance = undefined;
}, function() {
       ...
       $scope.modalInstance = undefined;
});


0 commentaires

1
votes

Vous pouvez également obtenir cette erreur si vous essayez de fermer le $ Modal immédiatement. J'ai rencontré cela lorsque j'ai accidentellement oublié d'inclure un argument de retard dans mon appel à $ Timeout. Voici le mauvais code: xxx

ceci a été corrigé en ajoutant le délai d'attente: xxx


0 commentaires

1
votes

$ la documentation ( https://angular-ui.github.io/bootstrap/) dit: En outre, la portée associée au contenu de Modal est augmentée avec 2 méthodes:

$ close (résultat)

$ rejet (raison).

Le JavaScript ne comporte pas Cela et injectant une modalité de $ ne fonctionne pas. Cela a fonctionné pour moi: xxx


0 commentaires