【问题标题】:Slickgrid breakpoint on filter过滤器上的 Slickgrid 断点
【发布时间】:2012-06-15 14:42:03
【问题描述】:

查看 Slickgrid 示例并使用 Google Chrome,我在过滤器上设置断点以查看内部发生的情况。断点在第 87 行工作正常http://mleibman.github.com/SlickGrid/examples/example-header-row.html

但它在第 143 行不起作用

http://mleibman.github.com/SlickGrid/examples/example4-model.html

为什么不呢?

【问题讨论】:

    标签: slickgrid


    【解决方案1】:

    尽管example4myFilter 函数设置为dataView 过滤器,但过滤是通过滑块和文本框事件连接完成的——检查第288 行和第303 行是否相同。这些上的过滤器断点应该按预期工作。

    【讨论】:

    • 感谢您的回复,但这不是我想要的。我需要断点在实际决定什么是匹配的函数中停止。
    • 然后禁用 288 和 303 处的事件连接。这些函数将覆盖您的 myFilter 函数。另外,为什么在 288 到 303 行中找不到匹配的内容?
    • 不是这样,这些事件只是用来设置myFilter 使用的过滤器参数。无论如何,我发现了问题。第 197 行:dataView = new Slick.Data.DataView({ inlineFilters: true }); 当 dataView 初始化时,inlineFilters 标志会导致 dataView “编译”过滤器,因此不会调用原始过滤器函数。使用了新的“编译”函数。
    【解决方案2】:

    编译过滤器。

    Example 4:dataView = new Slick.Data.DataView({ inlineFilters: true }); 中的第 197 行

    当 dataView 初始化时,inlineFilters 标志会导致 dataView “编译”过滤器,因此不会调用原始过滤器函数。使用了新的“编译”函数。

    请参阅slick.dataview.js 中的第 201 行和第 466 行,了解关于 Complied Filters 的代码。

    【讨论】:

      【解决方案3】:

      发生这种情况是因为第二个示例在构造函数中将DataViewinlineFilters 选项设置为true,而第一个不是。这意味着,在第二个示例中,SlickGrid 正在重新编译您的过滤器函数并将其内联到循环中以避免函数调用开销。这显着加快了对大型数据集的过滤。

      如果你想调试它,设置断点是行不通的。您需要在过滤器函数本身中添加debugger 语句。

      【讨论】:

      • inlineFilters: true 不适用于我的过滤器,但它适用于 inlineFilters:false 有什么想法吗?我的代码与example4非常相似
      猜你喜欢
      • 1970-01-01
      • 2013-04-11
      • 2013-10-16
      • 2011-09-24
      • 1970-01-01
      • 2012-11-15
      • 2012-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多