我的api有些问题。 我将NodeJS与ExpressJS Routing和AngularJS一起使用。
我想要做的是渲染模板(ejs)并同时发送一个json对象。
在我的路线文件夹中,我有index.js文件(包含一小部分):
router.get('/data', function(req, res, next){
Planning.getPlanningM(function(resultat){
res.json(resultat);
res.render('index');
});
});
关于变量resultat我确定它包含我想要的结果。但我不能做res.json和res.render。由于发送函数的两次调用。
在我的角度中,我有一个功能:
var resultat = []
$http.get('/data')
.success(function(res){
angular.extend(resultat, res.data);
})
.error(function(res){
console.log('err');
})
return resultat;
目标是渲染我的index.ejs并在此页面中显示我的计划。但我找不到解决办法。 这是我第一次询问stackoverflow,英语不是我的母语。请不要对我粗鲁:)
答案 0 :(得分:0)
我不熟悉EJS,我使用了把手,但你应该能够像渲染渲染函数一样传递数据 -
...
res.render("index", { data:resultat });
...
然后以EJS使用的任何格式在模板中访问它。对于hbs,它看起来像
...
<div>My data looks like this: {{data}}</div>
...
同样,EJS肯定会采用不同的方式,请参考文档以确保您拥有正确的格式。
答案 1 :(得分:0)
感谢您的回答MPawlak!它帮助了我! 我想要的是像你一样用渲染发送数据。
但是我想在我的角度工厂(我的工厂填充控制器,这部分工作)中获取/获取此数据,我之前显示:
var resultat = []
$http.get('/data')
.success(function(res){
angular.extend(resultat, res.data);
})
.error(function(res){
console.log('err');
})
return resultat;
使用您的方法,我可以直接将此数据放入我的视图中,并且它可以正常工作!谢谢!
<pre> <%= data %> </pre>
所以我在想一个肮脏的临时解决方案来做到这一点:
<textarea ng-model="planning"> <%= data %> </textarea>
但是,当我想展示这个计划时,它不起作用并保持空洞......我不明白为什么。
但是为了获得一个好的和干净的解决方案,我认为这不是一个好主意,所以我的问题是一样的...如何直接在角度工厂中获取这些数据?