Coveo загружает больше функциональности - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь реализовать функциональность «Загрузить больше» вместо базовой нумерации страниц в Coveo. Мой код кнопки ниже. Работают только журналы консоли, код не отправляет ajax службе.

Я искал документацию Coveo для загрузки дополнительных кнопок / функций, но не нашел ни одной.

//html code of button    
<div data-firstres="0" class="load_more_btn">Load More</div>     

//js
$('.load_more_btn').on('click', function() {
    var this_btn = $(this);
    var firstResult = this_btn.attr('data-firstres');
    var q = $('.magic-box-input input').val();
    console.log(q);
    var new_res = parseInt(firstResult) + 10;
    this_btn.attr('data-firstres', new_res);
    console.log(new_res);
    var root = document.body;
    Coveo.SearchEndpoint.endpoints['default'] = new Coveo.SearchEndpoint({
      restUri: 'https://platform.cloud.coveo.com/rest/search',
      queryStringArguments: {
          organizationId: 'replaced_val',
          numberOfResults: '10',
          firstResult:firstResult,
          q:q
        },
      accessToken: acc_token,
    });
    Coveo.init(root);
});

Ответы [ 2 ]

0 голосов
/ 08 января 2019

displayMoreResults работало для меня

$('.load_more_btn').on('click', function() {
  Coveo.$('.CoveoResultList').coveo('displayMoreResults', 5);
});
0 голосов
/ 07 января 2019

Во-первых, ваш код не будет соответствовать требуемому поведению.

Coveo.init должен вызываться только один раз, он используется для инициализации интерфейса поиска. SearchEndpoint должен быть установлен только один раз, до инициализации, а не после каждого щелчка «LoadMore».

Затем необходимо изменить запрос, используя События поиска JavaScript и Вызовы JavaScript API .

Таким образом, для вашего случая использования вы можете использовать метод displayMoreResults компонента CoveoResultList.

Вы также можете следовать примеру пользовательского компонента ShowMore , созданного специалистами Coveo в репозитории пользовательских компонентов JavaScript Search Framework . Вот соответствующая часть displayMoreResults() метода, вызываемого пользовательским компонентом:

public loadMore() {
  this.resultList ? this.resultList.displayMoreResults(this.options.count || 10) : null;
}

public get resultList(): ResultList | null {
  const resultListElement = $$(this.root).find('.CoveoResultList');
  if (resultListElement) {
    return get(resultListElement) as ResultList;
  }
  return null;
}
...