2017-12-09 6 views
0

Algoliaのautocomplete.jsを設定して複数のインデックス( 'resources'と 'users')を検索しました。ユーザーが「ユーザー」をクリックしたときとは異なるために、「リソース」をクリックしたときのリンクが必要です。 jQueryの実装のためのAlgoliaのマニュアルを使用してアルゴリアオートコンプリート複数のインデックスとのリンク

、私は次のようしている:

$('#aa-search-input').autocomplete(
    { 
    hint: true, 
    minLength: 2, 
    }, [ 
    { 
     source: $.fn.autocomplete.sources.hits(resources, { hitsPerPage: 3 }), 
     displayKey: 'name', 
     templates: { 
     header: '<div class="aa-suggestions-category">Resources</div>', 
     suggestion: function(suggestion) { 
      return '<span>' + 
      suggestion._highlightResult.name.value + '</span><span>' 
      + suggestion._highlightResult.write_up.value + '</span>'; 
     }, 
     empty: '<div class="aa-empty">No matching resources <i class="frown icon"></i></div>', 
    } 
    }, 
    { 
    source: $.fn.autocomplete.sources.hits(users, { hitsPerPage: 3 }), 
     displayKey: 'name', 
     templates: { 
     header: '<div class="aa-suggestions-category">Users</div>', 
     suggestion: function(suggestion) { 
      return '<span>' + 
      suggestion._highlightResult.username.value + '</span>'; 
      }, 
     empty: '<div class="aa-empty">No matching users <i class="frown icon"></i></div>', 
     } 
    } 
    ]).on('autocomplete:selected', function(event, suggestion, dataset) { 
    location.href = '/resources/view/show-' + suggestion.id; 
}); 

どのように私は2つの源別途のそれぞれに.on( 'autocomplete.selected)機能を適用することができますか?

答えて

1

これを行う方法を説明した例を示します。here

on("autocomplete:selected", function(event, suggestion, dataset) { 
    // 1-indexed dataset 
    var url = datasets[dataset-1].url 
    // do something with: 
    console.log(url, suggestion); 
    // for example 
    // location.href = url + suggestion.objectID 
}); 

あなたが他の質問がある場合は、談話forumを見てみることができます。

+0

私の特定のユースケースに合って少し夢中になって、それは美しく機能しました。ありがとうございました! –

関連する問題