Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

343
Views
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 :)

about 4 years ago · Santiago Trujillo
2 answers
Answer question

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.

about 4 years ago · Santiago Trujillo Report

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?

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!