你如何调试你的knockout.js绑定表达式?

时间:2012-09-14 00:39:33

标签: knockout.js

我喜欢KO框架,但调试有时对我来说只是一场噩梦。在常规javascript代码的情况下,我可以放置一个断点并在运行时去那里看看有什么问题,但是如何调试敲除表达式?在大多数情况下,绑定错误是缺少某些符号或错误语法的结果,有时敲除会显示有关该问题的明确错误,但有时不会,预期数据不会出现在页面上,或者错误消息如“绑定表达式错误” ,即使是'找不到函数abc'这样的消息也不会让我立刻明白什么是错的,因为我不知道我的模型KO运行时目前正在经历哪个级别。理想情况下,应该有一个浏览器插件,允许在任何KO表达式中放置断点或某些东西,并在运行时查看它运行的上下文。这样的东西是在市场上还是预期的?有关改进调试过程的任何想法吗?

2 个答案:

答案 0 :(得分:10)

在开发期间,我使用调试版本并在函数createBindingsStringEvaluator()上设置断点(v2.1.0中的第1858行)。因此,在“解析”绑定之前,您可以分析将要评估的表达式,找出哪些绑定失败,它们的上下文以及您可以逐步完成绑定过程,这样您就可以一直走到它失败的状态。

为了最大限度地减少非常复杂的绑定问题,特别是如果需要重复这些问题,我会考虑创建一些可以同时应用一组绑定的自定义绑定处理程序。

答案 1 :(得分:0)

在当前版本(v 3.4.1)中,该函数名为 parseBindingsString 。在那里设置debuggerconsole.log,可以获得一些信息。