Laravel Nova - 重新加载资源的索引视图
Posted
技术标签:
【中文标题】Laravel Nova - 重新加载资源的索引视图【英文标题】:Laravel Nova - Reload index view of a resource 【发布时间】: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,
,
);
但由于我推的是同一条路线,它什么也没做。
有什么想法吗?
谢谢,丹尼尔。
【问题讨论】:
为什么需要刷新页面?尝试将内容绑定到给定的数据对象属性 我也在寻找类似的解决方案。你有没有发现比重新加载页面更好的东西?我看到该组件在删除索引中的行时收到“更改”事件。所以我想知道我们如何以编程方式将该事件触发到特定组件。 【参考方案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
【讨论】:
以上是关于Laravel Nova - 重新加载资源的索引视图的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在 Laravel 中为 Nova 资源显式定义策略?