0

SlickGridを使用してWebアプリを開発しています。

私たちのアプリケーションには、さまざまなタブ/ページに多くのグリッドがあります。そのため、別々のグリッドに対して同じ関数を何度も記述しないように、コードをリファクタリングできるかどうか疑問に思っています。

例:複数のツリーグリッドがあるため、カスタムフォーマッターが必要です(ツリー構造を実装するフォーマッターはグリッドごとに同じです):function PercentCompleteFormatter(row、cell、value、columnDef、dataContext)

引数としてグリッドまたはデータビューを渡すことができないことを考えると(上記の署名をすべてのカスタムフォーマッターに使用する必要があると仮定します)、基本的に、グリッドを作成する各コードブロック内に同じフォーマッターコードを含める必要があります。

1つの「汎用」フォーマッタを作成してすべてのグリッドに適用する方法はありますか?

同じ質問が並べ替えやフィルタリングなどにも当てはまりますが、上記の説明が私が尋ねようとしていることをカバーしていることを願っています。

ありがとう!

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 に答える