Saltar al contenido

¿Puede un script js obtener una variable escrita en un contexto / página EJS dentro del mismo archivo?

Solución:

Editar: esta mitad considera que está utilizando EJS en servidor lado

1) Puede pasar un valor de variable ejs a una variable de Javascript

        <% var test = 101; %> // variable created by ejs
        <script>
           var getTest = <%= test  %>;  //var test is now assigned to getTest which will only work on browsers
           console.log(getTest);  // successfully prints 101 on browser
        </script>

simplemente cree una variable ejs y asigne el valor dentro de la etiqueta del script a la var getTest

Ex: var getTest = <%= test %>;

2) usted hipocresía pasar un valor de variable javascript a una variable ejs

Sí, no puede: si está en el servidor.

Por qué:

La plantilla EJS se renderizará en el servidor antes de que se inicie la ejecución de Javscript (se iniciará en el navegador), por lo que no hay forma de volver al servidor y solicitar algunos cambios previos en la página que ya se envió al navegador.


Editar: esta mitad considera que está utilizando EJS en Cliente lado

3) si EJS está en el lado del cliente, y pase la variable EJS a javascript

La respuesta anterior seguirá funcionando, pero deberá cargar el script dentro de la plantilla EJS, no el script cargado antes de la plantilla renderizada (en ese caso, por supuesto, no será un javascript válido).

4) si EJS está en el lado del cliente, y pase la variable javascript a EJS

Lo siento, no he probado este caso, pero realmente espero que alguien responda este caso.

La respuesta anterior no funcionó para mí. Puedes usar un div de esta manera:

<div id="mydiv" data-test=<%= test %>></div>

Y acceda a la variable de datos ‘prueba’ que le dio en una etiqueta de script:

<script>var test = document.getElementById('mydiv').dataset.test</script>

https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *