我喜歡KO框架,但調試有時對我來說只是一場噩夢。在常規javascript代碼的情況下,我可以放置一個斷點並在運行時去看看有什麼不對,但是如何調試敲除表達式?在大多數情況下,綁定錯誤是由於缺少一些符號或錯誤的語法造成的,有時敲除會向我顯示有關此問題的明確錯誤,但有時候不會,預期的數據不會出現在頁面上,或錯誤消息(如「綁定表達式錯誤」 ,甚至像'沒有找到函數abc'這樣的消息也不能讓我立即明白出了什麼問題,因爲我不知道我的模型KO運行時目前處於哪個級別。理想情況下,應該有一個瀏覽器插件,在任何KO表達式中放置斷點或其他東西,並查看它在運行時運行的上下文。像這樣的東西是在市場還是預期?有關改進調試過程的任何想法?你如何調試你的knockout.js綁定表達式?
6
A
回答
10
在開發過程中,我使用調試版本並在函數createBindingsStringEvaluator()
(v2.1.0中的行1858)上設置斷點。因此,在綁定被「解析」之前,您可以分析將要評估的表達式,找出哪些綁定失敗,它們的上下文,並且您可以逐步完成綁定過程,以便您可以一路走完,直至失敗。
爲了儘量減少非常複雜的綁定問題,特別是如果需要重複的話,我會考慮創建一些可以一次應用一組綁定的自定義綁定處理程序。
0
在當前版本(v 3.4.1)中,該函數被稱爲parseBindingsString。在那裏設置一個debugger
或console.log
,會給你一些信息。
相關問題
- 1. Python的正則表達式匹配\\\\ 192.168.1.1 \\ \\你好有\\如何\\你
- 2. 你不能多次申請綁定到相同的元素Knockout.Js
- 3. 你會如何解釋你的祖母的數據綁定?
- 4. 你如何測試你的emberjs路線?
- 5. 你如何測試你的Request.QueryString []變量?
- 6. 你如何編寫你的QTP測試?
- 7. 你如何測試你的Cocoa GUI?
- 8. 你如何調試你的Facebook應用程序?
- 9. 你如何使用gdb來調試你的代碼?
- 10. 你如何進行調試的Android inEclipse
- 11. 你如何調試C++的Android NDK?
- 12. 你使用什麼技術來調試複雜的guice綁定?
- 13. 你如何確定基表?
- 14. 你如何知道OCaml期望的表達式? (模式匹配)
- 15. 你如何綁定到類屬性?
- 16. 你如何避免被綁定到CMS?
- 17. 你如何將UIMA與SOLR Dataimporthandler綁定?
- 18. 你將如何調試此javascript問題?
- 19. 你如何強調測試wcf服務
- 20. 你如何使用Android調試器?
- 21. 如何分辨當調試是騙你
- 22. Knockout.js:如何綁定層次表單?
- 23. knockout.js表內的foreach綁定
- 24. Knockout.JS如何綁定dom元素綁定
- 25. 你如何劃分的LINQ表達式的屬性
- 26. 你能解釋lambda表達式嗎?
- 27. 你怎麼正則表達式
- 28. 是什麼?你在正則表達式
- 29. 你如何忽略手錶正則表達式工作在pm2
- 30. 你如何綁定到或調用基礎函數?
一些建議:看看這裏的一種方式來查看您當前的上下文:http://stackoverflow.com/questions/9261296/any-good-techniques-to-debug-template-binding-faults-for-淘汰賽-JS。另外,如果您真的想將綁定表達式移出標記,請查看此項目:https://github.com/rniemeyer/knockout-classBindingProvider –
謝謝。同樣的問題已被回答 – YMC
我利用一個小調試bindingHandler:http://stackoverflow.com/a/16242988/647845 –