Erreur de type: Impossible de lire la propriété 'childNodes' de undefined
J'essaie d'afficher un modal lorsque la vue est chargé.
Code :
//View
<div id="showCom" ng-controller="showmodalCtrl" ng-init="init()">
<div class="modal fade" id="companyModal" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Please Select Company</h4>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<label class="control-label">Recipient:</label>
<input type="text" class="form-control">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary">Submit</button>
</div>
</div>
</div>
</div>
//Controller
.controller('showmodalCtrl', ['$scope', function($scope){
$scope.init = function(){
$('#companyModal').modal("show");
}
}])
Tout fonctionne bien et le modal est affiché, mais j'ai cette erreur sur la console :
Type error : Cannot read property 'childNodes' of undefined
Je n'ai aucune idée de pourquoi cela se passe.
Aussi, si je retire la "forme" de l'modal , je n'obtiens aucune erreur. Donc je suppose que le problème est avec le formulaire, mais je ne suis pas en mesure de le résoudre.
Merci d'avance.
source d'informationauteur Zee
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème et j'ai réussi à résoudre en les enveloppant le modal fonction d'ouverture à l'intérieur d'un $timeout() ou avoir un cours normal de setTimeout() fonction.
J'ai eu le même message d'erreur lorsque vous essayez d'utiliser un plugin JQuery. Courir après document prêt résolu le problème pour moi. Le plugin est en cours d'exécution fine, mais l'angle de code qui a suivi dans le champ d'application actuel ne l'était pas.
C'était la "temporisation"-réponse dans ce thread qui m'a conduit à essayer cette solution.
Solution pour moi:
Comme une autre solution dans AngularJS contexte, je suis en utilisant cette approche:
$timeout
module dans votre JS contrôleurinit()
de fonctionner avec tous les initialiseurs comme ceci:Les bonnes œuvres.
Désolé pour le modifier. Est votre HTML bien formé? Vérifiez que toutes les balises match.
Dans votre extrait de code, on dirait que vous êtes absent une fermeture de div. vérifiez que la celui qui ferme le contrôleur div.
J'ai eu un problème similaire. Elle permettrait de lever une exception lorsque j'ai essayé d'ajouter du code html de dom et de le compiler à l'aide de $compiler en angularJs.
À l'intérieur de l'html a été une autre directive qui a essayé d'ajouter certains élément du dom de la page à un autre endroit dans la page.
J'ai juste eu à les appeler .clone de cet élément avant je l'ai déplacé vers le nouvel emplacement.
Et l'exception a disparu.