私は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を使用するMVC 5アプリケーションをどのようにデバッグしますか?
- 2. knockout.js:バインディングを更新しますか?
- 3. knockout.jsのCSSバインディングで「クリック」条件を追加するにはどうすればよいですか?次のようにknockout.jsでCSS-結合の
- 4. knockout.js再帰的バインディング
- 5. knockout.js CSSバインディング - どのようにフォーカスのような要素の状態を追加するには?
- 6. knockout.jsバインディング更新の問題
- 7. どのように言語バインディングを作成しますか?
- 8. knockout.jsで条件付きバインディングを作成するにはどうすればよいですか?
- 9. サービスメソッドへのバインディングはどのように機能しますか?
- 10. コレクションへのバインディングはどのように機能しますか?
- 11. バインディングはWPF/XAMLでどのように機能しますか?
- 12. WCFバインディングはどのようにクローンしますか?
- 13. Wenzhixinのブートストラップテーブルを破るKnockout.jsバインディング
- 14. Facebookのアプリをどのようにデバッグしますか?
- 15. 複雑なguiceバインディングをデバッグするためにどのようなテクニックを使いますか?
- 16. GWTアプリケーションをどのようにデバッグしますか?
- 17. 累積イテレータとフィルタをどのようにデバッグしますか?
- 18. どのようにポストグルで関数をデバッグしますか?
- 19. NetBeans IDEでClojureをどのようにデバッグしますか?
- 20. Visual Studio 2010エラーをどのようにデバッグしますか?
- 21. Smartyアプリケーションをどのようにデバッグしますか?
- 22. Railsアプリケーションをどのようにデバッグしますか?
- 23. node.jsアプリケーションをどのようにデバッグしますか?
- 24. どのようにタイプレベルコードをデバッグしますか?
- 25. Python GUIプログラムをどのようにデバッグしますか?
- 26. CodeIgniterアプリケーションをどのようにデバッグしますか?
- 27. Ubuntu 14.10でreact-nativeをどのようにデバッグしますか?
- 28. LinuxでTypeInitializationExceptionをどのようにデバッグしますか?
- 29. クラシックASPをどのようにデバッグしますか?
- 30. fastcgiアプリケーションをどのようにデバッグしますか?
いくつかの提案:ここであなたの現在のコンテキストを見る方法を見てみましょう: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 –