Laravel Nova - Перезагрузить индексное представление ресурса - PullRequest
0 голосов
/ 09 сентября 2018

Я разрабатываю свое первое месторождение Nova. Это поле индекса, содержащее кнопку, которая отправляет запрос Axios, и когда возвращается ответ, мне нужно перезагрузить представление индекса.

Пока я получил это:

this.$router.go(this.$router.currentRoute);

Проблема в том, что он обновляет всю страницу (жесткое обновление, например, когда вы нажимаете Cmd + R). Я просто хочу перезагрузить текущий маршрут (который является индексным маршрутом ресурса).

Я тоже пробовал это:

            this.$router.push({
                name: 'index',
                params: {
                    resourceName: this.resourceName,
                },
            });

Но поскольку я продвинулся по тому же маршруту, он ничего не делает.

Есть идеи?

Спасибо, Даниэль.

1 Ответ

0 голосов
/ 12 августа 2019

Вы можете попробовать что-то вроде этого

let currentFilters = _.cloneDeep(this.$store.state[`${this.resourceName}`]['filters']);
await this.$store.commit(`${this.resourceName}/storeFilters`, {});
await this.$store.commit(`${this.resourceName}/storeFilters`, currentFilters);

Этот код сбрасывает применяемые в настоящее время фильтры на пустой объект, а затем снова запрашивает старые фильтры, что приводит к обновлению индекса ресурса. Но будьте осторожны - этот метод делает два запроса к серверу.

Сейчас я сталкиваюсь с той же проблемой, пытаясь реализовать пользовательский всплывающий компонент - но это все, что я мог сделать с помощью встроенного хранилища Nova vuex.

Идея реализации взята из https://github.com/tanmuhittin/nova-reload-resources/blob/f27da9507a97696b7aca0e9bd7e5afd3001f0891/resources/js/components/Card.vue#L21

...