0

我正在使用 SlickGrid 开发一个 Web 应用程序。

我们的应用程序在不同的选项卡/页面中有许多网格,因此我想知道是否可以重构一些代码,这样我就不会一遍又一遍地为单独的网格编写相同的函数。

一个例子:我需要一个自定义格式化程序,因为我们有多个树网格(实现树结构的格式化程序对于每个网格都是相同的。): function PercentCompleteFormatter(row, cell, value, columnDef, dataContext)

鉴于我不能将网格或数据视图作为参数传递(假设上面的签名必须用于所有自定义格式化程序。),我基本上必须在我创建网格的每个代码块内有相同的格式化程序代码。

有没有一种方法可以创建一个“通用”格式化程序并将其应用于所有网格?

同样的问题适用于排序,过滤等......但我希望上面的解释涵盖了我想要问的内容。

谢谢!

4

1 回答 1

5

您可以使用 jQuery 的 .proxy() 助手(或类似的)将函数绑定到特定上下文。

例如:

function MyFormatter(row, cell, value) { 
  var grid = this;  // the grid will be the executing scope
  // ...
}

var myFormatterForGridA = $.proxy(MyFormatter, gridA);
var myFormatterForGridB = $.proxy(MyFormatter, gridB);
于 2012-05-11T17:05:29.313 回答