链接到带有 Vue.js 参数的路由

Posted

技术标签:

【中文标题】链接到带有 Vue.js 参数的路由【英文标题】:Link to a route with a parameter of Vue.js 【发布时间】:2016-07-12 00:48:15 【问题描述】:

我正在使用 Vue.js 和 Laravel 来呈现一个简单的表格列出产品。从那里我想链接到这样的产品详细信息页面:

<a href=" route("product::details", ['product' => '???']) ">@ product.id </a>

由于表是基于数据对象在客户端生成的,我正在寻找最优雅的方法来实现它,同时不绕过任何 laravel 方法,如 route() 允许我链接到命名路由。

我真的必须手动将路由方法的结果与 javascript 中的 Vue 变量合并吗?

在我看来是这样的:

<a href=" route("product::details", ['product' => ':product.id']) ">@ product.id </a>

我可以通过数据绑定由 Vue 解析/注入?

【问题讨论】:

与下面的问题类似,但我需要将“后端参数”合并到链接目标中:***.com/questions/32560184/… 你是在使用 laravel 还是 vue-router 进行路由?我想不出一种方法可以使我的头脑清醒,因为它们要么需要路径,要么需要命名路由 + 参数 我正在使用 laravel 进行路由。 嗯,你试过<a href=" route("product::details", ['product' => '@ product.id ']) ">@ product.id </a>吗? 【参考方案1】:

因为 Vue 是客户端,而 laravel 是服务器端,你无法以这种方式完成。

但是你可以在渲染的路线上做这样的事情:

创建一个vue方法

goto_route: function (param1) 
     route = ' route("yournamedroute", ["yourparameter" => "?anytagtoreplace?"]) '
     location.href = route.replace('?anytagtoreplace?', param1)

现在在你的动作元素中

<div v-for="o in object">
     <a v-on:click="goto_route(o.id_key)">press</a>
</div> 

基本上你正在替换......呃......让我们在渲染路线中将其命名为“placehoder”,并使用所需的值。

希望对你有帮助。

【讨论】:

以上是关于链接到带有 Vue.js 参数的路由的主要内容,如果未能解决你的问题,请参考以下文章

Vue之路由

vue.js关于路由的跳转

vue-router路由

Vue系列:Vue Router 路由梳理

Vue:vue-router路由

VueRouter 第一个路由