在 laravel 刀片花括号内连接 Javascript 变量

Posted

技术标签:

【中文标题】在 laravel 刀片花括号内连接 Javascript 变量【英文标题】:Concatenate Javascript variable inside laravel blade curly braces 【发布时间】:2018-04-19 21:32:28 【问题描述】:

我想在刀片 curly braces 中连接 javascript 变量,如下所示:

目前:

ajax: " route(api.colors) ,"

我想要什么:

var page='colors';
...
ajax: " route(api."+page+") ,"

有可能吗?

【问题讨论】:

您可以执行一些操作,例如将数据属性分配给您的一个 html 元素或传递路由的隐藏 HTML 元素(除非它包含敏感信息)。然后在你的 javascript 中以字符串的形式访问它。 我确实有隐藏输入,但我想动态传递它的值。 您所经过的路线是否取决于用户交互? 【参考方案1】:

您不能直接执行此操作,因为大括号在服务器上呈现,而 javascript 在客户端运行。您可以在您的路线中放置一个占位符,然后在您的 javascript 代码中替换此部分。像这样:

// Imagine the `api.page` route value is `/controller/page`:
ajax: " route(api.page) ".replace("page", page);

【讨论】:

这是一个非常聪明的方法。 +1 好的,我试过这个ajax:" route('api.items') ".replace("items", 'colors') 但它不起作用,仍然指向旧路线。 但是您渲染的路线是否包含字符串items @Jerodev 是的,它包含 items。【参考方案2】:

你可以试试这个代码,它对我有用。

 var id = $('#user_id').val();
 console.log(id);   
 ajax: " URL::to('/meme') /poster/"+id+"",

【讨论】:

【参考方案3】:

您可以使用ziggy library。

它有一个辅助函数route(route_name),您可以轻松地用于此目的。

【讨论】:

以上是关于在 laravel 刀片花括号内连接 Javascript 变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在刀片花括号中使用 javascript 变量

我可以使用花括号将数据传递给刀片组件吗?

如何通过 Laravel 刀片在数组内打印数组?

在 Laravel 中使用刀片模板在 php 标签内打印 JavaScript 变量值

如何在 foreach 循环内的 laravel 刀片文件中运行不同的 SELECT 查询?

我可以将刀片变量传递给 Laravel 中的 php 变量吗?