0

ローカル ソースからブートストラップ タイプヘッドを設定するための jquery コードを次に示します。

    $(function () {

    var src = [{ id: 1, name: 'Toronto', state: 'ON', country: 'Canada', key: 12345 },
                    { id: 2, name: 'Montreal', state: 'QC', country: 'Canada', key: 23456 },
                    { id: 3, name: 'New York', state: 'NY', country: 'USA', key: 34567 },
                    { id: 4, name: 'Buffalo', state: 'NY', country: 'USA', key: 45678 },
                    { id: 5, name: 'Boston', state: 'MA', country: 'USA', key: 56789 },
                    { id: 6, name: 'Columbus', state: 'OH', country: 'USA', key: 67890 },
                    { id: 7, name: 'Dallas', state: 'TX', country: 'USA', key: 78901 },
                    { id: 8, name: 'Vancouver', state: 'BC', country: 'Canada', key: 89102 },
                    { id: 9, name: 'Seattle', state: 'WA', country: 'USA', key: 90123 },
                    { id: 10, name: 'Los Angeles', state: 'CA', country: 'USA', key: 11234}];

    localStorage.setItem("cities", JSON.stringify(src));

    $('#search').typeahead({
        sources: [
        { name: "local", type: "localStorage", key: "cities" }
      ]
    });

});

その正常に動作します。サーバーから ajax 呼び出しを実行し、上記のソースと同様のデータをフックする方法。

update: jsfiddle の上記の作業コードは次のとおりです。http://jsfiddle.net/MMarW/

そして、これが起動していないjsfiddleのajaxコードですhttp://jsfiddle.net/FZP8a/3/

4

1 に答える 1

0

関数をソースとして提供:

$('#search').typeahead({
  source: function(query, process) {
    var searchUrl = YOUR_URL + '?q=' + encodeURIComponent(query);

    $.get(searchUrl)
    .success(function(data){
      //... do whatever you want...
      // ... and pass array to process function
      process(dataArray);
    })
    .error(function(){
      //...handle error
    });
  }
});

ソース関数から直接 dataArray を返すこともできます。オプションの下のドキュメントの詳細。

編集: jsonp を要求するには、jQuery.ajax を使用します。

$('#search').typeahead({
  source: function(query, process) {
    var searchUrl = YOUR_URL + '?q=' + encodeURIComponent(query);

    $.ajax(searchUrl, {
       dataType: 'jsonp',
       crossDomain: true // probably needed
    }).success(function(data){
      //... do whatever you want...
      // ... and pass array to process function
      process(dataArray);
    }).error(function(){
      //...handle error
    });
  }
});

jQuery.ajax ドキュメントで jsonp の詳細情報を入手してください

実際、$.get は $.ajax の省略形です。

于 2013-01-12T11:44:57.143 に答える