このようなPHP配列の例です:
_["Foo" => 100, "Bar" => 50]
_
すごい。これらをChartコンポーネントに渡す私の試みは次のとおりです。
<Chart points="{!! json_encode($points) !!}"></Chart>
これは問題ありませんが、json_encode()
を使用すると、_$points
_配列内の文字列(FooおよびBar)が "(二重引用符)でカプセル化されます。これは、最初の文字列が配列に出現するたびに、ブラウザは、「はpoints
属性を閉じることを目的としています。
これは、ブラウザに表示されるものです。
_<Chart points="{">Foo":100,"Bar":50}"</Chart>
_
これについてどうすればよいですか?私は何時間もこれに苦労してきました、そして私はそれに頭を包むことができません。
<Chart points='{!! json_encode($points) !!}'></Chart>
単数引用符を使用してください。
以前の回答を読んでいましたが、これが機能するまでに少し時間がかかりました。したがって、Laravel 5.5およびVueJs 2.5を使用して動作するのは次のとおりです。
PHP配列をJSONシリアル化文字列に変換します。
PHP配列については json_encode を参照してください。
Eloquentコレクションについては、Eloquentメソッド toJson を参照してください。
さらに参照するために、この新しいJSON文字列を$arrayAsJSON
。
ビュー(またはブレードテンプレート)で:
<some-vue-component :componentProperty="{{ $arrayAsJSON }}"></some-vue-component>
Vue Component:
<template></template>
<script>
export default {
props: ['componentProperty'],
mounted() {
console.log('some-vue-component mounted.');
console.log(this.componentProperty)
},
}
</script>
Laravel 5.5以降では、@ jsonディレクティブを使用できます。
<Chart points=@json($points)></Chart>
正式な方法を使用できます:
<Chart points='<?php echo json_encode($points); ?>'></Chart>