2014-09-10 21 views
5

Sto cercando di passare un oggetto dal nodo al cliente come qui di seguitopassare un oggetto a angularjs modello da giada

render: function(req,res){ 
    res.render('auth',{ 
     userData : req.session.user 
    }); 
    } 

Nel mio auth.jade il codice è il seguito

script. 
    var data = !{JSON.stringify(userData)} 
    console.log(data) 
    window.top.location='/profile' 

così sto reindirizzando l'applicazione per un nuovo percorso, che ho definito nel routeProvider utilizzando angularjs

app.config(['$routeProvider','$locationProvider', 
    function($routeProvider,$locationProvider) { 
    $routeProvider. 
     when('/profile', { 
     templateUrl: 'templates/profile.html', 
     controller: 'ProfileCtrl' 
     }) 

Quindi c'è una in che modo posso accedere all'oggetto "dati" nel controller per quella rotta?

risposta

7

È possibile farlo nello script:

var data = !{JSON.stringify(userData)}; 
window.serverData= data; 

Dopo nelle vostre app.js, si può fare questo:

app.value('serverData', window.serverData); 

E nel controller:

app.controller('controllerName', ['serverData', function(serverData){ 

console.log(serverData); 

}]); 

Puoi accedere a var di finestra nel controller senza fare app.value, ma è una buona pratica.

Problemi correlati