2

このデモが示すように、Google Closure (GC) Javascript ライブラリを使用すると、オートコンプリート UI を非常に簡単に作成できます - http://closure-library.googlecode.com/svn/trunk/closure/goog/demos/autocomplete-basic.html .

基本的に、配列を定義し、それをパラメーターの 1 つとして渡すだけです。配列を動的に更新し、AutoComplete で変更をすぐに表示できるようにしたいと考えています。

例、2 つの配列がある場合

list1 = ["One", "Two", "Three"]
list2 = ["1", "2", "3"]

オートコンプリートは list1 を使用して初期化されています。

var suggest = new goog.ui.AutoComplete.Basic(list1, document.getElementById('input'), false);

list2 を使用するように既存のオートコンプリート (提案) を更新するにはどうすればよいですか?

4

3 に答える 3

1

これが、基本的なオートコンプリートでアレイを更新できるようにするために使用するものです。

/**
 * Set the post data for the matcher.
 * @param {string} content Post data.
 */
goog.ui.AutoComplete.Basic.prototype.setContent = function(content) {

  this.matcher_.setContent(content);
};
/**
 * Set the post data.
 * @param {string} content Post data.
 */
goog.ui.AutoComplete.ArrayMatcher.prototype.setContent =function(content) {
    this.rows_ = content;
  this.content_ = content;
};

次に、リストを更新するときはいつでも、コードからsuggest.setContent(myarray)を呼び出します。

于 2011-07-01T02:37:09.783 に答える
1

これを行うためのパブリック API はありません。次のように、保護された matcher_ 変数を変更するメソッドを使用してサブクラスを作成できます。

this.matcher_ = new goog.ui.AutoComplete.ArrayMatcher(list2, false);

リモート ソースから動的に更新する場合は、goog.ui.AutoComplete.Remoteを使用します。

于 2010-03-19T00:36:43.063 に答える