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

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

目前:

ajax: "{{ route(api.colors) }},"

我想要什么:

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

有可能吗?

【问题讨论】:

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

标签: javascript laravel blade laravel-blade laravel-5.5


【解决方案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),您可以轻松地用于此目的。

    【讨论】:

      猜你喜欢
      • 2019-11-14
      • 2021-10-15
      • 2019-01-27
      • 2017-02-13
      • 1970-01-01
      • 2018-09-22
      • 1970-01-01
      • 2016-01-05
      • 2016-09-18
      相关资源
      最近更新 更多