私はKOのフレームワークが好きですが、デバッグは時々私にとっては悪夢です。通常のjavascriptコードの場合は、ブレークポイントを設定し、実行時にそこに行って何が間違っているかを確認できますが、ノックアウト式をデバッグするにはどうすればいいですか?ほとんどの場合、バインディングエラーはシンボルや誤った構文が欠落した結果であり、ノックアウトでは問題に関する明確なエラーが表示されることがありますが、時にはページに表示されないデータや「バインディング式が間違っています」、 「機能abcが見つかりません」などのメッセージでも、私のモデルKOランタイムのレベルが現時点でどのようになっているのかわからないので、何が間違っているのかをすぐに理解することはできません。理想的には、KO式にブレークポイントや何かを入れるブラウザプラグインがあり、実行時に実行されているコンテキストを参照する必要があります。このようなことは市場に出ているのか、それとも期待されていますか?どのようなアイデアデバッグプロセスの改善に関する?knockout.jsバインディング式をどのようにデバッグしますか?
6
A
答えて
10
開発中に、私はデバッグバージョンを使用し、関数createBindingsStringEvaluator()
(v2.1.0の1858行目)でブレークポイントを設定しました。バインディングが "解析"される直前に、評価される式を分析し、どのバインディングが失敗し、そのコンテキストがわかり、バインディングプロセスを進めて失敗するまで歩き回ることができます。
非常に複雑なバインディングの問題を最小限に抑えるため、特に繰り返しが必要な場合は、一度にバインディングセットを適用できるカスタムバインディングハンドラを作成することを検討します。
0
現在のバージョン(v3.4.1)では、この関数はparseBindingsStringと呼ばれています。 debugger
またはconsole.log
を設定すると、いくつかの情報が表示されます。
関連する問題
- 1. knockout.js:バインディングを更新しますか?
- 2. knockout.js再帰的バインディング
- 3. knockout.jsバインディング更新の問題
- 4. どのように言語バインディングを作成しますか?
- 5. コレクションへのバインディングはどのように機能しますか?
- 6. knockout.jsで条件付きバインディングを作成するにはどうすればよいですか?
- 7. バインディングはWPF/XAMLでどのように機能しますか?
- 8. WCFバインディングはどのようにクローンしますか?
- 9. Facebookのアプリをどのようにデバッグしますか?
- 10. どのようにポストグルで関数をデバッグしますか?
- 11. NetBeans IDEでClojureをどのようにデバッグしますか?
- 12. クラシックASPをどのようにデバッグしますか?
- 13. Visual Studio 2010エラーをどのようにデバッグしますか?
- 14. Railsアプリケーションをどのようにデバッグしますか?
- 15. どのようにタイプレベルコードをデバッグしますか?
- 16. Python GUIプログラムをどのようにデバッグしますか?
- 17. Smartyアプリケーションをどのようにデバッグしますか?
- 18. node.jsアプリケーションをどのようにデバッグしますか?
- 19. fastcgiアプリケーションをどのようにデバッグしますか?
- 20. GWTアプリケーションをどのようにデバッグしますか?
- 21. CodeIgniterアプリケーションをどのようにデバッグしますか?
- 22. Ubuntu 14.10でreact-nativeをどのようにデバッグしますか?
- 23. 複雑なguiceバインディングをデバッグするためにどのようなテクニックを使いますか?
- 24. Knockout.jsオブジェクトへの値バインディングの選択
- 25. Androidでどのように正常にデバッグしますか?
- 26. コンベンションベースのCaliburn.Microバインディングの例に、ValueConverterをどのように適用しますか?
- 27. WebStormワークスペース内でどのようにデバッグしますか?
- 28. 人はECB Emacsでどのようにデバッグしますか?
- 29. ブラウザアドオンなしでAngularJSバインディング{{expression}}をデバッグするにはどうすればよいですか?
- 30. ビューにViewModelのバインディングをデバッグするにはどうすればよいですか?
いくつかの提案:ここであなたの現在のコンテキストを見る方法を見てみましょう: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 –