获取Angular控制器上的EJS数据

时间:2015-10-16 15:03:40

标签: angularjs node.js ejs

我正在尝试使用ejs将数据从我的节点服务器传递到我的角度控制器,以便在控制器加载时可以使用它(对Angular或UI路由器不感兴趣,你可以解析它)。

节点服务器(使用快递):

app.get('/', function(req, res) {
  res.render('index', {
    names: ["Daniel", "Sarah", "Peter"]
  });
});

角度控制器:

.controller('NamesController', function ($scope) {
  var info = <%= names %>;
});

这样做会给我以下错误:Uncaught SyntaxError: Unexpected token <

如果无法做到这一点,我很乐意听取有关如何在我的网页上预加载数据的建议。

1 个答案:

答案 0 :(得分:8)

我将传递一个字符串化的数组版本 - 然后在客户端解析它:

app.get('/', function(req, res) {
    res.render('index', {
        names: JSON.stringify(["Daniel", "Sarah", "Peter"])
    });
});

请记住引用它(这假设你的控制器在你的EJS页面中)!

.controller('NamesController', function ($scope) {
    var info = JSON.parse('<%= names %>');
});

如果你的控制器在你自己的文件中,你可以使用ngInit方法:

<div ng-init="init('<%= names %>')"></div>

并解析:

$scope.init = function(stringifiedArray) {
    var info = JSON.parse(stringifiedArray);
}