Comment déboguer Angulaire du Code JavaScript
Je suis en train de travailler sur une preuve de concept Angulaire à l'aide de JavaScript.
Comment déboguer l'angle du code JavaScript dans les différents navigateurs (Firefox et Chrome) ?
- euh angularjs enveloppements beaucoup de votre modèle de code et l'exécute dynamicly... la source de l'erreur est toujours "angular.js" ainsi de trouver la source de l'erreur est presque impossible.
Vous devez vous connecter pour publier un commentaire.
1. Chrome
Pour Debug AngularJS dans chrome vous pouvez utiliser AngularJS Batarang.
(À partir d'études récentes sur le plugin, il semble comme AngularJS Batarang est plus maintenu. Testé dans les différentes versions de google chrome ne fonctionne pas)
Voici le Lien pour la description et la Démo:
Introduction de Angular JS Batarang
Télécharger le plugin chrome à partir d'ici: plugin chrome pour debug AngularJS
Vous pouvez également consulter ce lien: ng-livre: le Débogage AngularJS
Vous pouvez également utiliser ng-inspecter pour le débogage angulaire.
2. Firefox
Pour Firefox avec l'aide de Firebug vous pouvez déboguer le code.
Également utiliser cette Firefox Add-Ons : AngScope: les Add-ons pour Firefox (Pas d'extension officielle par AngularJS Équipe)
3. Débogage AngularJS : visitez le Lien : Débogage AngularJS
ng-inspect
si Batarang est de vous donner des maux de tête.À mon humble avis, le plus frustrant expérience vient de se /définition de la valeur d'un champ d'application spécifique liée à un élément visuel. J'ai fait beaucoup de points d'arrêt non seulement dans mon propre code, mais aussi dans angular.js lui-même, mais parfois, il n'est tout simplement pas la façon la plus efficace.
Bien que les méthodes ci-dessous sont très puissants, ils sont certainement considéré comme une mauvaise pratique si vous comptez l'utiliser dans le code de production, afin de les utiliser à bon escient!
Obtenir une référence dans la console à partir d'un élément visuel
Dans de nombreux non-IE des navigateurs, vous pouvez sélectionner un élément par cliquer-droit sur un élément et en cliquant sur "Inspecter l'Élément". Sinon, vous pouvez également cliquer sur l'un quelconque des éléments des Éléments de l'onglet dans Chrome, par exemple. Le dernier élément sélectionné sera stockée dans la variable
$0
dans la console.Obtenir un champ lié à un élément
Selon qu'il existe une directive qui crée un isolat champ d'application, vous pouvez récupérer la portée par
angular.element($0).scope()
ouangular.element($0).isolateScope()
(utiliser$($0).scope()
si $ est activé). C'est exactement ce que vous obtenez lorsque vous utilisez la dernière version de Batarang. Si vous modifiez directement la valeur, n'oubliez pas d'utiliserscope.$digest()
afin de refléter les changements de l'INTERFACE utilisateur.$eval est mal
Pas nécessairement à des fins de débogage.
scope.$eval(expression)
est très pratique lorsque vous souhaitez vérifier rapidement si une expression a la valeur attendue.Le manque prototype membres de portée
La différence entre
scope.bla
etscope.$eval('bla')
est l'ancien ne prend pas en considération le fait hérité de valeurs. L'utilisation de l'extrait de code ci-dessous pour obtenir l'image en entier (vous ne pouvez pas modifier directement la valeur, mais vous pouvez utiliser$eval
de toute façon!)L'utiliser avec
scopeEval($($0).scope())
.Où est mon contrôleur?
Parfois, vous pouvez surveiller les valeurs dans
ngModel
lorsque vous êtes à la rédaction d'une directive. Utilisation$($0).controller('ngModel')
et vous aurez pour vérifier l'$formatters
,$parsers
,$modelValue
,$viewValue
$render
et tout et tout.il y a aussi $log que vous pouvez utiliser! il rend l'utilisation de votre console de manière à ce que vous voulez qu'il fonctionne!
montrant l'erreur/avertissement/info la façon dont votre console vous indique normalement!
utiliser ce > Document
En dépit de la réponse à la question, il pourrait être intéressant de prendre un coup d'oeil à ng-inspecteur
Essayer ng-inspecteur. Télécharger l'add-on pour Firefox à partir du site web de http://ng-inspector.org/. Il n'est pas disponible sur l'extension de Firefox sur le menu.
http://ng-inspector.org/ - site web
http://ng-inspector.org/ng-inspector.xpi - Firefox Add-on
Malheureusement, la plupart des add-ons et extensions de navigateur sont juste montrer les valeurs pour vous, mais ils ne vous laissent pas modifier la portée des variables ou exécuter angulaire des fonctions. Si vous voulez changer le $scope des variables dans le navigateur de la console (dans tous les navigateurs), alors vous pouvez utiliser jquery. Si vous chargez jQuery avant AngularJS, angulaire.l'élément peut être passé un sélecteur jQuery. Vous pourriez donc à inspecter l'étendue d'un contrôleur avec
Exemple:
Vous avez besoin de changer la valeur de $portée variable et voir le résultat dans le navigateur, puis il suffit de taper dans le navigateur de la console:
Vous pouvez voir les changements dans votre navigateur immédiatement. La raison nous avons utilisé $apply() est: un champ variable de mises à jour à partir de l'extérieur angulaire contexte de ne pas mettre à jour la liaison, Vous devez exécuter digérer cycle après la mise à jour des valeurs de la portée à l'aide
scope.$apply()
.Pour l'observation d'un $champ valeur de la variable, il vous suffit d'appeler cette variable.
Exemple:
Vous voulez voir la valeur de $champ d'application.var1 dans la console web dans Chrome ou Firefox, il suffit de taper:
Le résultat sera affiché dans la console immédiatement.
Ajouter un appel à
debugger
où vous avez l'intention de l'utiliser.Dans le
console
onglet de votre navigateur web, outils de développement, questionangular.reloadWithDebugInfo();
Visite ou de recharger la page que vous avez l'intention de débogage et de voir le débogueur s'affichent dans votre navigateur.
portée()
Nous pouvons récupérer le $champ d'application de l'élément (ou de sa mère) à l'aide de la portée() la méthode sur la
élément:
injecteur()
Avec cet injecteur, on peut alors ensuite instancier tout Angulaire de l'objet à l'intérieur de notre application, tels que les services,
d'autres contrôleurs, ou tout autre objet
Vous pouvez ajouter un 'debugger' dans votre code et de le recharger l'application, qui met le point d'arrêt et que vous pouvez "step over", ou à exécuter.
Vous pouvez déboguer à l'aide de navigateurs intégrés dans les outils de développement.
ouvrir les outils de développement dans le navigateur et allez à l'onglet source.
ouvrir le fichier voulez-vous de débogage à l'aide de Ctrl+P et de recherche de nom de fichier
ajouter un point d'arrêt sur une ligne ny cliquant sur le côté gauche de la code.
actualiser la page.
Il y a beaucoup de plugin disponible pour le débogage, vous pouvez vous référer pour l'utilisation de plugin chrome Debug Angulaire de l'Application à l'aide de "Debugger for chrome" plugin
De Code de Visual Studio (Pas de Visual Studio) ne Ctrl+Maj+P
Type Débogueur pour google Chrome dans la barre de recherche, l'installer et l'activer.
Dans votre
launch.json
fichier ajouter cette config :Vous devez lancer google Chrome avec le débogage à distance activé pour que l'extension à joindre à elle.
Cliquez-droit sur le raccourci de Chrome, puis sélectionnez propriétés
Dans le champ "cible", d'ajouter --remote-débogage-port=9222
Ou dans l'invite de commande, exécutez /chrome.exe --remote-débogage-port=9222
Dans un terminal, exécutez /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-débogage-port=9222
Dans un terminal, lancez google chrome --remote-débogage-port=9222
en savoir Plus ===>
Depuis les add-ons ne fonctionnent plus, le plus utile des outils que j'ai trouvé est à l'aide de Visual Studio/IE parce que vous pouvez définir des points d'arrêt dans votre JS et inspecter vos données de cette façon. Bien sûr, Chrome et Firefox ont de bien meilleurs outils de dev en général. Aussi, la bonne vieille console.log() a été super utile!
Peut-être que vous pouvez utiliser Angulaire De Mauvaise Augure Google Chrome Dev Tools extension pour le débogage Angulaire 2 et les applications ci-dessus.