Мгновенный поиск Angular / Algolia - Instant Search не является функцией

Что я использую

  • угловатый
  • Поиск Алголии / Мгновенный поиск

Чего я пытаюсь достичь

  • Чтобы вернуть набор результатов

Установлены

  • Я установил Instant Search через npm

Что работает

  • Я могу записать массив в консоль

Что не работает

  • Я следил за документацией, однако я получаю сообщение об ошибке:

ОШИБКА TypeError: instantsearch не является функцией

Компонент ТС

// Algolia Search
declare var require: any
import * as algoliasearch from 'algoliasearch';
const instantsearch = require('instantsearch.js');

...


constructor 

...


  testResults(){
    var client = algoliasearch("myappid", "myapikey");
    var index = client.initIndex('albums');
    index.search('p', function(err, content) {
      console.log(content.hits);
    });

    const search = instantsearch({
      appId: 'myappid',
      apiKey: 'myapikey',
      indexName: 'albums',
      urlSync: true
    });
  

  
    // initialize hits widget
    search.addWidget(
      instantsearch.widgets.hits({
        container: '#hits'
      })
    );
  
    search.start();
    
  }

Компонент HTML

 <div (click)="testResults()"> Test Results </div>
 
   <div id="hits">
    <!-- Hits widget will appear here -->
  </div>

Любая помощь здесь будет принята с благодарностью.

1 ответ

Решение

Попробуйте это: импортировать * как instantsearch из 'instantsearch.js'

Рабочий пример: https://gist.github.com/codediodeio/8b8b22844f8fd8a34ff6d6a6e8582468

И вы должны реализовать это в классе обслуживания;)

Документ по Алголии https://community.algolia.com/instantsearch.js/v2/guides/angular-integration.html

Другие вопросы по тегам