Estoy usando Jade framework como frontend con Nodejs & express para backend
entonces, cuando estoy representando una vista con datos, no puedo acceder a estos datos usando JQuery
debajo de mi servicio de Nodejs que muestra una vista con datos simples = x
router.get('/test',function (req,res,next) { res.render('test',{data : 'x'}); });por lo que la página de prueba se mostrará sin ningún problema, lo que estoy tratando de hacer es leer los datos renderizados usando los métodos de Jquery
footer .pull-right | Gentelella - Bootstrap Admin Template by a(href='https://colorlib.com') Colorlib .clearfix // /footer content // jQuery script(src='/vendors/jquery/dist/jquery.min.js') alert(data) // no alert or action happenpero el error decía (variable desconocida de datos)
Además, puedo leerlo desde el propio jade.
¿alguna sugerencia?
gracias
Intenta usar lo siguiente
|<script> !='alert("'+data+'")' |</script>El JavaScript que está escribiendo dentro de su marco de jade no podrá ver las variables node.js del lado del servidor porque este JavaScript del lado del cliente se carga y ejecuta dentro del navegador, por lo que debe pasar sus variables de alguna manera del lado del servidor al lado del cliente luego obtenga estas variables usando JavaScript del lado del cliente.
Si está pasando algunas cadenas, es más fácil para usted usar la forma anterior.
|<script> -> abre la etiqueta de JavaScript.
!='alert("'+data+'")' -> cadena de jade normal que estará dentro de nuestra etiqueta de JavaScript, eso significa que debería darnos el código de JavaScript después de ser procesado por jade, lo que hará que nuestra alert("x") porque los datos serán reemplazados por su valor.
|</script> -> cerrar la etiqueta de JavaScript
pero si desea pasar un objeto, hay formas de hacerlo:
JSON.stringify(data) en el lado del servidor para escribir su objeto en un div oculto y en el lado del cliente usando var data = JSON.parse(jQuery('div').text())