我正在尝试使用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 <
如果无法做到这一点,我很乐意听取有关如何在我的网页上预加载数据的建议。
答案 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);
}