在 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 变量的主要内容,如果未能解决你的问题,请参考以下文章
在 Laravel 中使用刀片模板在 php 标签内打印 JavaScript 变量值