MegaTron
MegaTron

Reputation: 3393

Angular / Algolia Instant Search - instantsearch is not a function

What I'm using

What I'm trying to achieve

Installed

What's Working

What's Not Working

ERROR TypeError: instantsearch is not a function

Component TS

// 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();
    
  }

Component HTML

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

Any help here would be greatly appreciated.

Upvotes: 1

Views: 1738

Answers (1)

andrea06590
andrea06590

Reputation: 1299

Try this : import * as instantsearch from 'instantsearch.js'

Working example : https://gist.github.com/codediodeio/8b8b22844f8fd8a34ff6d6a6e8582468

And you should implement it in a service class ;)

Algolia doc https://community.algolia.com/instantsearch.js/v2/guides/angular-integration.html

Upvotes: 1

Related Questions