Jestem noob javascript i próbuję nauczyć się kanciasty.jak debugować błędy konwersji typu w AngularJS?
mam kilka prostych angularjs kodu:
<div ng-controller="todoController">
<span> temp = {{tempVal()}} </span>
</div>
bug jest wystarczająco łatwe, tempVal jest ciągiem znaków, a nie metoda.
Mój problem (i pytanie) brzmi: jak odkryć ten fakt podczas debugowania?
używam Chrome i zainstalowane rozszerzenie Batarang jednak wszystko mam to tajemniczy ślad stosu:
TypeError: string is not a function
at http://localhost:6202/lib/angular-1.0.4/angular.js:6213:13
at Object.$interpolate.fn (http://localhost:6202/lib/angular-1.0.4/angular.js:4829:22)
at Object.watchExpression (http://localhost:6202/AddSomeControl/index.html:416:29)
at Object.Scope.$digest (http://localhost:6202/lib/angular-1.0.4/angular.js:7783:38)
at Object.Scope.$apply (http://localhost:6202/lib/angular-1.0.4/angular.js:7991:24)
at Object.$delegate.__proto__.$apply (http://localhost:6202/AddSomeControl/index.html:500:30)
at http://localhost:6202/lib/angular-1.0.4/angular.js:932:13
at Object.invoke (http://localhost:6202/lib/angular-1.0.4/angular.js:2813:25)
at bootstrap (http://localhost:6202/lib/angular-1.0.4/angular.js:930:12)
at angularInit (http://localhost:6202/lib/angular-1.0.4/angular.js:906:5) angular.js:5601
utknąłem próbuje dowiedzieć się, w jaki sposób, przy użyciu tych narzędzi w kompleksie aplikacji, mogłem odkryć, że błąd jest gdzieś w pobliżu tej linii tempVal().
Próbowałem ustawić punkt przerwania w prawo, gdy błąd jest rejestrowany i sprawdziłem, czy jest to stempel, i zobacz złapany wyjątek w $ get.Scope. $ Digest, który może podpowiedzieć mi identyfikator nadrzędnego zakresu (this.target. $ id), wraz z czym "watcher" (this.length) jest on rozbity, a poprzedni zakończony element html (this.value) .... czy to najlepszy sposób? Co za ból :(
Zobacz wideo na http://blog.angularjs.org/2012/07/introducing-angularjs-batarang.html. do debugowania Angulara, przynajmniej jestem w stanie naprawić teraz wszystkie rzeczy, mimo że wciąż jestem początkującym JavaScriptem – stiebitzhofer
Tak, obejrzałem to, to jest dobre dla ogólnego debugowania, ale niestety to d nie radzimy sobie z sytuacjami takimi jak to, co opisuję. zasadniczo, kątowy nie ma dobrego raportowania błędów debugowania (Batarang nie jest przeznaczony do raportowania błędów, służy do sprawdzania szablonu/stanu) – JasonS
Chciałbym zbadać funkcję tempVal na konsoli (po wybraniu zakresu jak pokazano na filmie) . Ale może pomogę, jeśli zamieścisz tutaj kod funkcji. – stiebitzhofer