Я интегрирую автозаполнение Algolia и мне не нравится внешний вид предложений автозаполнения. В частности, я не хочу, чтобы административные муниципалитеты и районы появлялись в предложениях, только адрес, город, страна. Как я могу опустить административный запрос?

Например, если я введу «Сараево», предложения появятся в виде «Сараево, Кантон Сараево, Босния и Герцеговина» - я хочу, чтобы они отображались просто «Сараево, Босния и Герцеговина».

0
Elektra 1 Май 2019 в 08:41

3 ответа

Лучший ответ

Вам следует использовать templates параметра Места конструктора.

Вот простой пример:

const placesInstance = places({
    ...
    templates: {
        suggestion: function(s) {
            return [s.highlight.name, s.highlight.city, s.highlight.country].join(', ');
        }
    }
});

Посмотрите на функцию, которая используется по умолчанию для более сложного примера: https://github.com/algolia/places/blob/master/ ЦСИ / formatDropdownValue.js

1
Olivier Lance 2 Май 2019 в 15:47

Я только что понял, что, хотя в предложениях по автозаполнению отсутствует административный уровень, после выбора «места» административный уровень отображается в строке поиска. Любые предложения о том, как редактировать возвращаемое значение, т.е. что отображается ПОСЛЕ того, как вы выберите город / страну?

Спасибо.

0
Elektra 21 Июн 2019 в 08:38

Я подправил ваш код (так как он почему-то давал двойную запятую) к этому, и он работает хорошо - еще раз спасибо! : D

templates: {
                   suggestion: function({ name, country, highlight }) {
            return (highlight.name || name) + ', ' + (highlight.country || country);
                    }
                 },
0
Elektra 23 Май 2019 в 11:26