2013-02-07 23 views
5

Tôi là một javascript noob và cố gắng học góc.cách gỡ lỗi lỗi chuyển đổi loại trong AngularJS?

Tôi có một số angularJS mã đơn giản như thế này:

<div ng-controller="todoController"> 
    <span> temp = {{tempVal()}} </span> 
</div> 

lỗi này là đủ dễ dàng, tempVal là một chuỗi, không phải là một phương pháp.

Vấn đề (và câu hỏi) của tôi là, làm cách nào để khám phá thực tế này khi gỡ lỗi?

Tôi đang sử dụng Chrome và đã cài đặt phần mở rộng batarang, tuy nhiên tất cả tôi nhận được là một chồng khó hiểu dấu vết:

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 

Tôi đang mắc kẹt cố gắng tìm hiểu làm thế nào, sử dụng những công cụ này trong một phức tạp ứng dụng, tôi có thể phát hiện ra rằng lỗi ở đâu đó xung quanh đường đó tempVal().

Tôi đã thử thiết lập điểm ngắt ngay khi lỗi đang được ghi nhật ký và tra cứu callstack và thấy ngoại lệ bị bắt trong $ get.Scope. $ Digest có thể cho tôi biết id phạm vi gốc (this.target. $ id), cùng với những gì "watcher" (this.length) nó là bị rơi, và phần tử html đã hoàn thành trước đây (this.value) .... đó là cách tốt nhất? những gì một nỗi đau :(

+0

Xem video trên http://blog.angularjs.org/2012/07/introducing-angularjs-batarang.html. để gỡ lỗi Angular, ít nhất tôi có thể sửa chữa ngay bây giờ tất cả mọi thứ mặc dù vẫn là một người mới bắt đầu JavaScript – stiebitzhofer

+0

yeah tôi đã xem đó, nó là tốt cho gỡ lỗi chung, nhưng không may là nó d không xử lý các tình huống như những gì tôi mô tả. về cơ bản, góc không có báo cáo lỗi gỡ lỗi tốt (Batarang không phải để báo cáo lỗi, nó là để kiểm tra mẫu/trạng thái) – JasonS

+0

Tôi sẽ điều tra hàm tempVal trên bảng điều khiển (sau khi chọn phạm vi như được hiển thị trong video) . Nhưng có lẽ tôi có thể giúp nếu bạn đăng mã của hàm ở đây. – stiebitzhofer

Trả lời

5

câu trả lời, tiếc là, là bạn không thể gỡ lỗi lớp này lỗi.

tốt, bạn có thể, nó được gọi là "tìm hiểu những góc biên dịch/vm và debug nó"

không có gói thân thiện với người dùng thân thiện với người dùng về các loại lỗi sử dụng này.

+1

Chỉ để tham khảo dễ dàng để mọi người có thể thấy phản ứng của nhóm góc cạnh và có thể trợ giúp: https://github.com/angular/angular.js/issues/1974 – basarat

+0

cảm ơn vì đã đề cập đến vấn đề này, xin lỗi tôi đã không tự đăng lại một liên kết! – JasonS

Các vấn đề liên quan