【问题标题】:How do you debug your knockout.js binding expressions?你如何调试你的 knockout.js 绑定表达式?
【发布时间】:2012-09-07 03:46:03
【问题描述】:

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

【问题讨论】:

标签: knockout.js


【解决方案1】:

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

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

【讨论】:

  • 当您的所有绑定都失败并且没有脚本错误时,您会怎么做?
  • 这取决于你有什么样的“失败”。如果它发生在多个绑定中,请一次处理一个问题。通过确保一切都符合您的预期来了解失败的原因。
【解决方案2】:

在当前版本 (v 3.4.1) 中,该函数称为 parseBindingsString。在此处设置debuggerconsole.log,将为您提供一些信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 2010-10-04
    • 2010-11-14
    • 2015-05-31
    • 2018-12-17
    相关资源
    最近更新 更多