2012-09-14 31 views
6

Tôi thích khung công tác KO, tuy nhiên việc gỡ lỗi đôi khi chỉ là một cơn ác mộng đối với tôi. Trong trường hợp của mã javascript thường xuyên tôi có thể đặt một breakpoint và đi có lúc chạy và xem những gì là sai, nhưng làm thế nào để gỡ lỗi biểu thức loại trực tiếp? Trong hầu hết các trường hợp, lỗi kết buộc là kết quả thiếu biểu tượng hoặc cú pháp sai và đôi khi loại trực tiếp hiển thị lỗi rõ ràng cho vấn đề, nhưng đôi khi không, dữ liệu dự kiến ​​sẽ không xuất hiện trên trang hoặc thông báo lỗi như 'biểu thức ràng buộc sai' , thậm chí các tin nhắn như 'chức năng abc không được tìm thấy' không cho phép tôi hiểu ngay lập tức những gì sai vì tôi không biết mức độ nào của thời gian chạy mô hình KO của tôi đang diễn ra tại thời điểm này. Lý tưởng nhất nên có một plugin trình duyệt cho phép đặt breakpoint hoặc một cái gì đó ở bất kỳ biểu thức KO và xem bối cảnh nó chạy với thời gian chạy. Có bất cứ thứ gì như thế này trên thị trường hoặc dự kiến ​​không? Bất kỳ ý tưởng nào liên quan đến cải thiện quá trình gỡ lỗi?Làm cách nào để gỡ lỗi các biểu thức ràng buộc knockout.js của bạn?

+4

Một vài gợi ý: Hãy xem ở đây để biết cách xem ngữ cảnh hiện tại của bạn: http://stackoverflow.com/questions/9261296/any-good-techniques-to-debug-template-binding-faults-for- knockout-js. Ngoài ra, nếu bạn thực sự muốn di chuyển các biểu thức ràng buộc của bạn ra khỏi đánh dấu, sau đó hãy xem dự án này: https://github.com/rniemeyer/knockout-classBindingProvider –

+0

Cảm ơn bạn. Câu hỏi tương tự đã được trả lời – YMC

+0

Tôi sử dụng một trình gỡ lỗi gỡ lỗi nhỏ: http://stackoverflow.com/a/16242988/647845 –

Trả lời

10

Trong quá trình phát triển, tôi sử dụng các phiên bản gỡ lỗi và đặt điểm ngắt trên hàm createBindingsStringEvaluator() (dòng 1858 trong v2.1.0). Vì vậy, ngay trước khi các ràng buộc được "phân tích cú pháp", bạn có thể phân tích biểu thức sẽ được đánh giá, tìm ra ràng buộc nào không thành công, ngữ cảnh của chúng và bạn có thể bước qua quá trình ràng buộc để bạn có thể đi qua cho đến khi nó thất bại.

Để giảm thiểu các vấn đề cho các ràng buộc rất phức tạp, đặc biệt nếu chúng cần lặp lại, tôi sẽ xem xét việc tạo một số trình xử lý ràng buộc tùy chỉnh có thể áp dụng một tập hợp các liên kết cùng một lúc.

+0

bạn sẽ làm gì khi tất cả các ràng buộc của bạn không thành công và không có lỗi tập lệnh? – Nikos

+2

Nó phụ thuộc vào loại "thất bại" mà bạn có. Nếu nó xảy ra trong nhiều ràng buộc, đối phó với các vấn đề tại một thời điểm. Hiểu lý do tại sao nó không thành công bằng cách đảm bảo rằng mọi thứ là những gì bạn mong đợi. –

+0

cảm ơn tuyệt vời !!!! – Nikos

0

Trong phiên bản hiện tại (v 3.4.1), chức năng được gọi là parseBindingsString. Đặt một số debugger hoặc console.log tại đó, sẽ giúp bạn có một số thông tin.

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