-
使用一些Vue组件构建Laravel应用程序
-
想要使用props将PHP数组传递到Vue组件上
这是一个这样的PHP数组的例子:
["Foo" => 100, "Bar" => 50]
大 . 这是我尝试将它们传递给Chart组件:
<Chart points="{!! json_encode($points) !!}"></Chart>
这看起来很好,但 $points
数组中的字符串(Foo和Bar)在使用 json_encode()
时用“(双引号)”封装 . 这意味着只要第一个字符串出现在数组中,浏览器就会认为“意图关闭” points
属性 .
以下是您在浏览器中看到的内容:
<Chart points="{">Foo":100,"Bar":50}"</Chart>
我该怎么做?我一直在努力奋斗几个小时,我无法绕过它 .
-
不能使用“(双引号),因为浏览器会将其解释为属性的结束引用并弄乱HTML
-
可't use '(单引号),因为's invalid JSON (and json_encode doesn' t支持它)
4 回答
从Laravel 5.5开始,您可以使用@json指令 .
<Chart points=@json($points)></Chart>
可以使用正式方式:
虽然阅读以前的答案,但这需要一段时间才能开始工作 . 所以,这对Laravel 5.5和VueJs 2.5来说对我有用:
对于PHP数组,请参见json_encode .
对于Eloquent集合,请参阅Eloquent方法toJson .
为了进一步参考,我们称之为新的JSON字符串
$arrayAsJSON
.只需使用单数引号 .