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

142
Visualizações
ExpressJS + AngularJS: comunica rutas y controladores

Tengo un objeto json en mi archivo de rutas express.js y para analizarlo, supongo que la mejor manera sería enviarlo a mi controller Angular para que se repita en mi vista.

rutas/micuenta.js

 router.post('/', function(req, res) { // form submitted var email = req.body.email var password = req.body.password login.returnSessionToken(email, password, (token) => { console.log("return token: ", token) var logged = require('../js/index') logged.returnUserData(token, (myData) => { res.render('myaccount', { myDataFromRoutes:myData }); }) }, (fail) => {console.log(fail)}) })

controlador.js

 var controllers = angular.module('myApp.controllers', []); controllers.controller('IndexController', ['$scope', function($scope) { $scope.data= myDataFromRoutes; //how do I get the JSON object from my routes and pass it here? }]);

micuenta.html

 <body ng-app="myApp"> <div ng-controller="IndexController"> <li ng-repeat="d in data"> {{ d }} </li> </div> </body>

¿Es correcta la estructura? No puedo entender cómo hacer que mis rutas expresas se comuniquen con mi controlador angular.

Cualquier ayuda será muy apreciada. ¡Gracias!

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Como no está usando $http para AJAX el objeto JSON, puede usar ngInit . Este es uno de los pocos usos previstos de ngInit . Use Jade o cualquier motor de plantilla de servidor que tenga para interpolar el objeto JSON en la directiva ng-init :

 <body ng-app="myApp"> <div ng-controller="IndexController" ng-init="data = #{JSON.stringify(myDataFromRoutes)}"> <li ng-repeat="d in data"> {{d}} </li> </div> </body>

Dado que está operando dentro del alcance del controlador, la variable de datos también estará disponible en su controlador como $scope.data .

Alternativamente, (probablemente mejor, en realidad) puede interpolar directamente en JavaScript. Pero esto no funcionará para JS incluido como archivo. Tendrá que ser un script en línea:

 <script> var controllers = angular.module('myApp.controllers', []); controllers.controller('IndexController', ['$scope', function($scope) { $scope.data= #{JSON.stringify(myDataFromRoutes)}; }]); </script>

NOTA: Las versiones recientes de Pug han reemplazado la sintaxis de interpolación anterior con lo siguiente:

 ng-init="data = `${JSON.stringify(myDataFromRoutes)}`"
about 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