【问题标题】:Laravel Nova - Reload index view of a resourceLaravel Nova - 重新加载资源的索引视图
【发布时间】:2019-02-14 03:39:00
【问题描述】:

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

现在我得到了这个:

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

问题在于它刷新了整个页面(硬刷新,比如按下 Cmd+R 时)。我只想重新加载当前路由(即资源的索引路由)。

我也试过这个:

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

但由于我推的是同一条路线,它什么也没做。

有什么想法吗?

谢谢,丹尼尔。

【问题讨论】:

  • 为什么需要刷新页面?尝试将内容绑定到给定的数据对象属性
  • 我也在寻找类似的解决方案。你有没有发现比重新加载页面更好的东西?我看到该组件在删除索引中的行时收到“更改”事件。所以我想知道我们如何以编程方式将该事件触发到特定组件。

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


【解决方案1】:

你可以试试这样的

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

【讨论】:

    猜你喜欢
    • 2020-02-28
    • 1970-01-01
    • 2023-03-19
    • 2021-10-21
    • 2019-05-22
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多