1

ブラッドハウンド エンジンとハンドルバー テンプレートを備えたtypeahead.jsバージョンを使用しています。0.10ブラッドハウンド エンジンでは、入力フィールドで検索する変数として変数を渡しています。

それにもかかわらず、入力するときに、テンプレートにオブジェクトの他の変数を表示させたい(たとえば、value_to_be_searched = name および other_vars = location || last_name など...

次の例では、変数をデフォルト値とともにmovies.json表示したいと思います。release_dateoriginal_title

  var movies = new Bloodhound({
    datumTokenizer: function(d) { return  Bloodhound.tokenizers.whitespace(d.value); },
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    prefetch: {
      url:'http://localhost/dh/js/movies.json',
      filter: function(data) {
        return $.map(data, function(movie) { 
          return { value: movie.original_title}; 
        });
      }
    }
  });

  movies.initialize();

  $('#cenas5').typeahead(null,
  {

    name: 'movies ',
    displayKey: 'value',
    source: movies .ttAdapter(),
    templates: {
      header: '<h3 class="">Users</h3>',
      empty: [
      '<div class="empty-message">',
      'unable to find any matches',
      '</div>'
      ].join('\n'),
      suggestion: Handlebars.compile('<p><strong>{{value}}</strong> - {{release_date}}</p>')
    }
  });

JSON ファイル:

"movies":[
    {
        "adult": false,
        "backdrop_path": "/8uO0gUM8aNqYLs1OsTBQiXu0fEv.jpg",
        "id": 550,
        "original_title": "Fight Club",
        "release_date": "1999-10-15",
        "poster_path": "/2lECpi35Hnbpa4y46JX0aY3AWTy.jpg",
        "popularity": 61151.745000000003,
        "title": "Fight Club",
        "vote_average": 9.0999999999999996,
        "vote_count": 174
    },
    {
        "adult": false,
        "backdrop_path": "/5Z0FScA1bB6EbdGmZCUBeUk32eV.jpg",
        "id": 14476,
        "original_title": "Clubbed",
        "release_date": "2008-10-02",
        "poster_path": "/bl6PEQtmohEP1zP9srNZY6bXyHg.jpg",
        "popularity": 1.7290000000000001,
        "title": "Clubbed",
        "vote_average": 7.7999999999999998,
        "vote_count": 3
    }
 ]
4

1 に答える 1

0

返される JavaScript オブジェクトに release_date が含まれるようにフィルターを変更します。

filter: function(data) {
 return $.map(data, function(movie) { 
  return { 
   value: movie.original_title,
   release_date: movie.release_date
  }; 
 });
}

提案関数は release_date を表示する必要があります。

于 2014-04-07T12:28:15.100 に答える