JavaScript

时间:2017-07-27 20:41:28

标签: javascript concat

我对jQuery中的string concat感到很奇怪,如下所示:

      var name = button.data('name')
      var emailName = button.data('email')
      var userName = button.data('username')
      var userStatus = button.data('active')
      var userId = button.data('id')
      alert(userId)
      var actionUpdate = "{{action('UserController@update', "+userId+")}}" 
      alert(actionUpdate)

和userId的结果/警报是28723050-71e9-11e7-a0a9-e9f620359699(uuid作为用户ID)但是当我连接/加入时,我得到的actionUpdate变量是{{action('UserController @ update',“userId” }}}而不是{{action('UserController @ update',“28723050-71e9-11e7-a0a9-e9f620359699”)}}正如我所料。

我尝试使用concat或+ =加入这些字符串和变量,但没有得到预期的结果。

非常感谢任何替代方案和解决方案。

2 个答案:

答案 0 :(得分:1)

如果由于一些奇怪的原因,你真正想要的是

{{action('UserController@update', "28723050-...9699")}}

围绕UserController@update的单引号和userId周围的双引号,我认为您需要

  var userId = button.data('id')
  alert(userId)
  var actionUpdate = "{{action('UserController@update', \""+userId+"\")}}" 
  alert(actionUpdate)

(即,你需要在连接部分的任一侧添加一个转义的双引号字符。)

答案 1 :(得分:0)

感谢John,关于“转义字符”的想法,这项工作正如我现在预期的那样,我猜“{,{,},}”在JS或Jquery中有特殊含义,因此我将此行写成:< / p>

var actionUpdate =“{{action('UserController @ update','”+ userId +“')}}”

希望对于想要将表单提交操作更改为laravel controller的人来说非常有用。