この問題の記述方法は正確にはわかりませんが、非常に便利なSlickGrid JQueryプラグインからJQueryUIウィジェットを作成しています。 Slickgridでは、クライアント上の行を検索できるようにするために、「フィルタ」として使用される関数を設定することができます。このように...JQueryUIウィジェット関数のスコープの問題
_filter: function (item) {
if (this.options.searchString == null)
{ return true; }
if (this.options.searchString.length == 0)
{ return true; }
for (var prop in item) {
if (item[prop] != null) {
if (item[prop].toString().toLowerCase().indexOf(searchString.toLowerCase()) > -1)
{ return true; }
}
}
return false;
}
self.options.dataView.setFilter(self._filter);
私の問題は_filter
が呼び出されると、this
は、窓要素に設定されていない、とはもはやので、すべて私のオプションの利用できない、ウィジェットへの参照を保持していることです。 _filter
ユーザーがグリッド内でどのような用語を検索しているのかを教えてください。
難易度:複数のウィジェットインスタンスがそれぞれ個別のフィルタを持つページに表示されます。また、私はSlickGridの仕組みを変更したくないと思っています。これが最善の答えですが、ここだ場合、私は思い付いた