Автор оригинала: Temidayo Ajisebutu.
Я обычно не большую частью блогера или ориентированного на общественный человек, но мне просто пришлось блог о моем опыте с угловыми 4 и Algolia Instantsearch.js.
Я разрабатывал проект, который нуждался в оптимизированной поисковой службе, которая заключается в том, что он узнал об Algolia Search с моего друга. Я хотел использовать его, но вводит его в мой проект, было трудно, потому что я не мог найти никаких учебников, таких как этот вы читаете, это может помочь мне изучить Альголия и угловые 4.
Достаточно введения – давайте пойдем прямо в инфузирующие Algolia Instantsearch.js с угловым 4!
Во-первых, мы должны установить угловую CLI для нашего проекта:
npm install @angular/cli@latest --save
После вставки вышеуказанного кода в нашу командную строку мы создадим новый проект.
ng new alsearch cd alsearch ng serve
Перейдите к http://localhost: 4200/ Отказ Приложение автоматически перезагрузится, если вы измените любой из исходных файлов.
Вы можете настроить HTTP-хост по умолчанию и порт, используемый сервером разработки с двумя параметрами командной строки:
ng serve --host 0.0.0.0 --port 4201
После игры с командной строкой вы можете вернуться к вашему проекту и ссылку Link Algolia Instancearch.js с вашим угловым 4 проектом, вставляя код ниже в файл окружающей среды.
Окружающая среда находится в папке окружающей среды, которая находится в папке SRC
/src/environments/environment.ts Отказ
export const environment = { production: false, algolia: { appId: 'APP_ID', apiKey: 'SEARCH_ONLY_KEY', indexName: 'getstarted_actors', urlSync: false } };
После этого нам нужно установить instansearch.js
Пакет так, чтобы мы могли использовать различные пакеты поиска Angolia.
npm install instantsearch.js --save
Если вы хотите использовать CSS algolia CSS и шаблоны, добавьте следующие строки в голову index.html
файл.
Компонент поиска
Вся наша функция поиска будет завернута в search.component.ts
, который вы можете сгенерировать с NG G Компонент Поиск
Отказ Во время Ngoninit
Вы настраиваете Instansearch
С вашим переменным окружающей среды и звоните .start ()
Инициализировать его. Использовать Объявите VAR Instantancearch: любой
Чтобы очистить некоторые ошибки, которые могут быть встречены при использовании Instansearch
Отказ
import { Component, OnInit } from '@angular/core'; import { environment } from '../../environments/environment'; import * as instantsearch from 'instantsearch.js'; declare var instantsearch: any; @Component({ selector: 'search', templateUrl: './search.component.html', styleUrls: ['./search.component.scss'] }) export class SearchComponent implements OnInit { search: any; constructor() { } ngOnInit() { const options = environment.algolia; this.search = instantsearch(options); this.search.start(); } }
Вы можете построить интерфейс поиска ALGOLIA, добавив к нему виджеты. Давайте начнем с добавления поля поиска и результаты (хиты) на наш компонент.
this.search.addWidget( instantsearch.widgets.searchBox({ container: '#search-box' }) ); // initialize hits widget this.search.addWidget( instantsearch.widgets.hits({ container: '#hits', }) );
Поиск HTML
В шаблоне вы можете идентифицировать элементы, которые вы хотите заменить с виджетами.
Чтобы использовать пользовательский шаблон для результатов, показанных вместо простого текста по умолчанию, вы можете использовать код ниже.
Вы также можете добавить шаблон для определенных виджетов с усами и интерполировать данные с двойными вьющимися скобками. В виджете хитов я отображаю имя и изображение актера, а не в RAW JSON.
this.search.addWidget( instantsearch.widgets.hits({ container: '#hits', templates: { empty: 'No results', item: ` Result {{objectID}}: {{{_highlightResult.name.value}}}` }, escapeHits: true }) );
Полный код
//search.component.ts import { Component, OnInit } from '@angular/core'; import { environment } from '../../environments/environment'; import * as instantsearch from 'instantsearch.js'; declare var instantsearch: any; @Component({ selector: 'search', templateUrl: './search.component.html', styleUrls: ['./search.component.scss'] }) export class SearchComponent implements OnInit { search: any; constructor() { } ngOnInit() { const options = environment.algolia; this.search = instantsearch(options); this.search.addWidget( instantsearch.widgets.searchBox({ container: '#search-box' }) ); // initialize custom hits widget this.search.addWidget( instantsearch.widgets.hits({ container: '#hits', templates: { empty: 'No results', item: ` result {{objectID}}: {{{_highlightResult.name.value}}}` }, escapeHits: true }) ); this.search.start(); } }
//search.component.html
Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий ниже!