Ahora mismo, cuando lo hago
<pre>{{ $device->window }}</pre>
veo esto
Quiero acceder a él en JS. Ex. device.screen.height , es 926
He intentado
console.log(`{{ json_decode($device->window) }}`); console.log(JSON.parse(`{{ json_decode($device->window) }}`)); console.log(JSON.parse(`{{ json_decode($device->window) }}`)); console.log(JSON.stringify(`{{ json_decode($device->window) }}`)); console.log(JSON.stringify(`{{ json_decode($device->window) }}`)); console.log(JSON.parse(`{{ json_encode($device->window) }}`)); console.log(JSON.parse(`{{ json_encode($device->window) }}`)); console.log(JSON.stringify(`{{ json_encode($device->window) }}`)); console.log(JSON.stringify(`{{ json_encode($device->window) }}`));seguí recibiendo
htmlspecialchars() espera que el parámetro 1 sea una cadena, objeto dado
Si lo hago :
console.log(JSON.parse(JSON.stringify( {{ json_encode($device->window) }} )));
Obtuve
"{"innerWidth":"980","innerHeight":"1708","devicePixelRatio":"3","screen":{"width":"428","height":"926"}}"
Tengo tantos "
Tienes que usar una sintaxis diferente para eso:
{!! json_encode($device->window) !!}Pero no debes acceder a él de esta manera. No es una buena práctica mezclar idiomas.
Dentro de una etiqueta de script, podrías hacer:
const myData = {{ $device->window }}; console.log(myData.screen.height);Hay una directiva blade para eso:
@php $json = [ 1, new DateTime, (object)[], 'a' ]; @endphp <script> test = @json($json); console.log(test) </script>