将对象从jade传递给angularjs模板

Moz*_*zak 5 javascript node.js angularjs pug

我试图将一个对象从节点传递到客户端,如下所示

render: function(req,res){
    res.render('auth',{
        userData : req.session.user
    });
  }
Run Code Online (Sandbox Code Playgroud)

在我的auth.jade中,代码如下

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

所以我将应用程序重定向到我使用angularjs在routeProvider中定义的新路由

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

那么有没有办法可以访问该路径的控制器中的"数据"对象?

jvr*_*nte 7

您可以在脚本中执行此操作:

var data = !{JSON.stringify(userData)};
window.serverData= data;
Run Code Online (Sandbox Code Playgroud)

在你的app.js之后,你可以这样做:

app.value('serverData', window.serverData);
Run Code Online (Sandbox Code Playgroud)

在你的控制器中:

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

console.log(serverData);

}]);
Run Code Online (Sandbox Code Playgroud)

您可以在不执行app.value的情况下访问window var到控制器,但这是一个很好的做法.