Laravel Nova-资源的重新加载索引视图

时间:2018-09-09 14:09:20

标签: laravel vue.js vuejs2 vue-router laravel-nova

我正在开发我的第一个Nova领域。这是一个索引字段,其中包含一个发送Axios请求的按钮,返回响应时,我需要重新加载索引视图。

现在我明白了:

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

问题在于它刷新了整个页面(就像按Cmd + R时一样,很难刷新)。我只想重新加载当前路由(这是资源的索引路由)。

我也尝试过:

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

但是由于我按了相同的路线,所以它什么也没做。

有什么想法吗?

谢谢,丹尼尔。

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情

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