我正在使用我的节点应用程序从API检索一些数据,并希望在视图中显示该数据,并允许用户在那里更改它.我正在调用api并得到一个JSON响应,我想传递给视图.这是我正在做的事情:
var query = 'SELECT Id, OwnerId, ActivityDateTime, EndDateTime, WhatId, WhoId, Subject FROM Event WHERE OwnerId = \'' + user.userId + '\'' ;
// execute the query and get response
...
...
var ev = resp.records;
res.render('index.html', {eventData : ev});
Run Code Online (Sandbox Code Playgroud)
问题是当我想在我的视图中使用数据时,我得到一个未定义的错误.
如果我做:
<div id='Subject'>#{eventData.Subject}</div>
Run Code Online (Sandbox Code Playgroud)
我得到#{eventData.Subject}的打印输出
尝试在JS中使用数据会返回一个未定义的错误:
<script type="text/javascript">
var mydata = #{eventData};
</script>
Run Code Online (Sandbox Code Playgroud)
经过一番搜索后,我找到了一篇建议先将其字符串化的帖子:
var mydata = !{JSON.stringify(eventData)};
console.log(mydata);
Run Code Online (Sandbox Code Playgroud)
在这里,我得到一个语法错误"SyntaxError:missing:after property id"
我很确定我错过了一些基本的东西,并且不能为我的生活弄清楚.我发现很多文章的例子都解释了如何在Jade中做到这一点,但我不想使用Jade并使用文章中的建议导致"未定义"或"非法字符"错误.
我完全没有想法......帮忙?TNX
Jonathan Ong 的评论实际上让我走上了正轨。由于我使用的是 html 的客户处理程序,因此它不会解释任何变量。
我改用 ejs:
// view engine ejs
app.set('view engine', 'ejs');
app.register('.html', require('ejs'));
Run Code Online (Sandbox Code Playgroud)
并使用以下占位符:
<%= eventData.Subject %>
Run Code Online (Sandbox Code Playgroud)
这实际上让我的数据出现了。感谢所有的评论和回答!迈克尔
归档时间: |
|
查看次数: |
6420 次 |
最近记录: |