laravel Js去掉传递json中的"等转义特需字符

    最近在laravel框架中,前台Blade模版中获取后台传递的json字符串,发现了有&quot字符,现象如下:

/*后端*/
$x_char = ["2017-10-25","2017-10-24"];

return view(xxx, ['x_char' => json_encode(x_char)]);

/*前端*/
<script>

var x_char = "{{ $x_char }}";
console.log( x_char ); //输出 [&quot;2017-10-25&quot;,&quot;2017-10-24&quot;]

</script>

很明显,后端接口传递至Balde模版里的json数据,被转义了。而我不需要转义的json字符串。

网上有博文,将这些转义字符,用js正则转回来,但麻烦。

后来看到这篇帖子,才发Blade模版接收变量时,用 {!! $x !!} ,可以让 $x 不会被php函数 htmlspecialchars转义。

原帖:https://segmentfault.com/q/1010000010580668

laravel官网介绍:https://laravel.com/docs/5.4/blade#displaying-data

改造代码如下:

/*前端*/
<script>

var x_char = {!! $x_char !!};//将 "{{ $x_char }}" 改为 {!! $x_char !!} 即可
console.log( x_char ); //输出 ["2017-10-25", "2017-10-24"]

</script>

猜你喜欢

转载自my.oschina.net/u/3403514/blog/1556636