• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

296
Vistas
NodeJS - AngularJS ¿Enviar objeto JSON y renderizar plantilla al mismo tiempo?

Tengo algunos problemas con mi api. Uso NodeJS con ExpressJS Routing y AngularJS.

Lo que quiero hacer es renderizar una plantilla (ejs) y al mismo tiempo enviar un objeto json.

En mi carpeta de rutas tengo el archivo index.js con esto (una pequeña parte):

 router.get('/data', function(req, res, next){ Planning.getPlanningM(function(resultat){ res.json(resultat); res.render('index'); }); });

Sobre la variable resultado estoy seguro que contiene lo que quiero. Pero no puedo hacer res.json y res.render. Debido a las dos invocaciones de la función de envío.

Y en mi angular tengo esto en una función:

 var resultat = [] $http.get('/data') .success(function(res){ angular.extend(resultat, res.data); }) .error(function(res){ console.log('err'); }) return resultat;

El objetivo es representar mi index.ejs y mostrar mi planificación en esta página. Pero no encuentro solución para hacer esto. Esta es mi primera pregunta en stackoverflow, el inglés no es mi idioma nativo. Por favor, no seas grosero conmigo :)

almost 3 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

No estoy familiarizado con EJS, uso manillares, pero debería poder pasar datos en la función de renderizado así:

 ... res.render("index", { data:resultat }); ...

Luego acceda a él en la plantilla en cualquier formato que use EJS. Para hbs se vería algo así como

 ... <div>My data looks like this: {{data}}</div> ...

Nuevamente, EJS seguramente lo hará de manera diferente, consulte el documento para asegurarse de tener el formato correcto.

almost 3 years ago · Santiago Trujillo Denunciar

0

¡Gracias por tu respuesta MPawlak! ¡Me ayudó! Lo que quiero es enviar los datos con el render como lo haces, sí.

Pero quiero tomar/tomar estos datos en mi fábrica angular (mi fábrica llena el controlador, esta parte funciona) que muestro antes:

 var resultat = [] $http.get('/data') .success(function(res){ angular.extend(resultat, res.data); }) .error(function(res){ console.log('err'); }) return resultat;

¡Con su método, puedo tomar estos datos en mi vista directamente a su derecha y funciona! Gracias !

 <pre> <%= data %> </pre>

Así que estaba pensando en una solución temporal sucia para hacer esto:

 <textarea ng-model="planning"> <%= data %> </textarea>

Pero cuando quiero mostrar esta planificación, no funciona y se queda vacía... No entiendo por qué.

Pero para obtener una solución buena y limpia, creo que esta no es una buena idea, por lo que mi pregunta es la misma ... ¿cómo tomar estos datos en mi fábrica angular directamente?

almost 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda