Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

437
Visualizações
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 :)

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

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.

over 4 years ago · Santiago Trujillo Relatório

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?

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda