Любой способ не отображать переключатель, который установит «тип места» на что-то, что не даст никаких результатов после запроса AJAX? - PullRequest
0 голосов
/ 26 февраля 2019

Я постараюсь быть максимально подробным в своем объяснении.В настоящее время у меня есть веб-сайт Vue.js, который использует Google Places API для отображения всех достопримечательностей определенного города.

Чтобы получить достопримечательности, вам нужно указать, какой тип достопримечательностей вы ищете в GET-запросе к Google Place API.Например, вы можете искать бары, музеи и т. Д. Чтобы указать этот тип, необходимо добавить &type=sometype к запросу GET.В настоящее время пользователь может выбрать тип, установив переключатель.Переключатели создаются путем циклического перемещения по массиву, который содержит все типы:

            types: [{name: 'Libraries', type: 'library'},
                    {name: 'Parks', type: 'park'}],

И цикл for для переключателей:

        <div v-for="el in types" :key="el.key">
            <input type="radio" :id="el.name" :value="el.type" v-model="type">
            <label :for="el.name">{{ el.name }}</label>
        </div>

Нажатие любой из этих переключателей изменяетзначение свойства с именем type соответствует значению переключателя

data(){
    return {
        types: [{name: 'Libraries', type: 'library'},
                {name: 'Parks', type: 'park'}],
        type: '',
    }
}

А затем у меня есть наблюдатель, который выполняет запрос GET для получения прицелов с этим конкретным типом:

    watch: {
        type: function () {
            axios.get('/getSights/' + this.lat + '/' + this.lng + '/' + this.type)
            .then(response => {
                this.sights = response.data.result.results
                this.nextPageToken = response.data.result.next_page_token
                console.log(response)
            }).catch((error) => console.log(error));
        },
    }

Это прекрасно работает, однако, в некоторых городах нет аквариумов или мест другого типа, поэтому, когда пользователь выбирает эту кнопку-переключатель, это приводит к пустой странице.Мне было интересно, есть ли какой-нибудь способ как-то не отображать переключатели, которые не будут возвращать никаких прицелов.

Одна из вещей, которая приходит мне в голову, это сделать все запросы GET перед тем, как даже рендерить любые кнопки иотправьте тип запроса GET в массив, если вышеупомянутые запросы GET вернут результаты> = 1, а затем отобразят кнопки на основе элементов этого массива.Это, однако, звучит очень неэффективно для меня, так как мне придется делать 10-15 запросов GET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...