1
var lunrFilter1 = new Backgrid.Extension.LunrFilter({
  collection: pageableTerritories.fullCollection,
  placeholder: "Name",
  fields: {
    name: name
  },
  ref: 'id',
  wait: 150
});
$example2.prepend(lunrFilter1.render().el);
lunrFilter1.$el.css({float: "left", margin: "20px"});

それは使用していますlunr.tokenizer from assest/js/lunr.js.

どうすれば上書き/拡張できますか?

4

1 に答える 1

1

lunrのデフォルトのトークナイザーは、最上位の lunr 名前空間の単なる関数です。

残念ながら、現時点ではトークナイザーを拡張する簡単な方法はありませんが、独自の実装に完全に置き換えることは可能です。

lunr.tokenizer = function (obj) {
  // your implementation here!
}

既存の実装は、文字列、文字列の配列、または何も渡されない (null または未定義) を処理し、文字列の配列または空の配列を返す必要があります。この配列は、残りのテキスト処理パイプラインによって処理されます。これらの制約を満たす場合、lunr は、トークナイザーを交換したほど賢明ではなく、期待どおりに動作し続けます。

不足している特定の機能や見つけたバグがある場合は、Github プロジェクトで問題を開いてください。

于 2014-02-27T18:13:35.180 に答える