繁体   English   中英

NodeJS-AngularJS是否同时发送JSON对象和渲染模板?

[英]NodeJS - AngularJS Send JSON object and render templat at same time?

我的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。 由于两次调用了send函数。

在我的角度我有这个功能:

    var resultat = []
    $http.get('/data')
    .success(function(res){
        angular.extend(resultat, res.data);
    })
    .error(function(res){
        console.log('err');
    })
    return resultat;

目的是呈现此index.ejs并在此页面中显示我的计划。 但是我找不到解决方案。 这是我对stackoverflow的第一个询问,英语不是我的母语。 请不要对我不礼貌:)

我对EJS不熟悉,我使用把手,但是您应该能够在render函数中传递数据,如下所示:

...
res.render("index", { data:resultat }); 
...

然后以EJS使用的任何格式在模板中访问它。 对于HBS,它看起来像

...
<div>My data looks like this: {{data}}</div>
...

同样,EJS肯定会做不同的事情,请参考文档以确保您使用正确的格式。

感谢您的回答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>

但是,当我想显示此计划时,它行不通,并且保持空白……我不明白为什么。

但是要获得一个好的,干净的解决方案,我认为这不是一个好主意,所以我的要求是一样的……如何直接在我的角度工厂中获取这些数据?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM