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

141
Views
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 answers
Answer question

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 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!