Автор оригинала: 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
Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий ниже!