将节点数组传递给ejs文件中的JavaScript
我想将app.js中的数组从EJS文件传递到JavaScript中。在我的循环函数中,我想将一些数据填充到对象中,以将它们推送到约会日历的JS数组中。但是我不能传递数据。。 以下是我的代码片段: app.js:将节点数组传递给ejs文件中的JavaScript,javascript,node.js,mongodb,mongoose,ejs,Javascript,Node.js,Mongodb,Mongoose,Ejs,我想将app.js中的数组从EJS文件传递到JavaScript中。在我的循环函数中,我想将一些数据填充到对象中,以将它们推送到约会日历的JS数组中。但是我不能传递数据。。 以下是我的代码片段: app.js: router.route ('/torauswahl').get(function (req, res) { Buchung.find(function (err, buchungen) { if (err) return res.sen
router.route ('/torauswahl').get(function (req, res) {
Buchung.find(function (err, buchungen) {
if (err)
return res.send(err);
res.render('torauswahl',{
buchungen: JSON.stringify(buchungen)
});
});
});
我的EJS中的JS:
var appointments = [];
var appointment = {};
var buchungArray = <%=buchungen %>;
for(var i=0; i < buchungArray.length; i++) {
var monat = 1 + buchungArray[i].from.getMonth();
var von = -1 + buchungArray[i].from.getHours();
var vonMin = buchungArray[i].from.getMinutes();
var bisMonat = 1 + buchungArray[i].from.getMonth();
var bis = -1 + buchungArray[i].to.getHours();
var bisMin = buchungArray[i].to.getMinutes();
if (bisMin === 0) {
bisMin = bisMin + "0";
}
if (vonMin === 0) {
vonMin = vonMin + "0";
}
appointment[i] = {
calendar: buchungArray[i].tor,
start: new Date(buchungArray[i].from.getDate(), monat, buchungArray[i].from.getDay(), von, vonMin, 0),
end: new Date(buchungArray[i].to.getDate(), bisMonat, buchungArray[i].to.getDay(), bis, bisMin, 0)
}
appointments.push(appointment[i]);
}
var约会=[];
var约会={};
var-buchungArray=;
对于(var i=0;i
在我声明buchungArray的地方,IntelliJ向我显示了一个错误:Expression expected。 我感谢你的帮助! Cheees,Mert将数据转义以插入HTML,但您正在将其插入一个不适用常规HTML转义规则的
您可以使用
获得原始输出
IDE仍然可能会抱怨,因为它试图像处理纯JavaScript一样处理EJS模板。您可能希望将数据存储在其他位置,例如data
属性中
<script data-buchungen="<%=buchungen %>">
var buchungArray = JSON.parse(document.currentScript.dataset.buchungen);
// etc
</script>
var buchungArray=JSON.parse(document.currentScript.dataset.buchungen);
//等
将数据转义以插入HTML,但您正在将其插入一个
中,而正常的HTML转义规则不适用
您可以使用
获得原始输出
IDE仍然可能会抱怨,因为它试图像处理纯JavaScript一样处理EJS模板。您可能希望将数据存储在其他位置,例如data
属性中
<script data-buchungen="<%=buchungen %>">
var buchungArray = JSON.parse(document.currentScript.dataset.buchungen);
// etc
</script>
var buchungArray=JSON.parse(document.currentScript.dataset.buchungen);
//等
呈现的客户端JS是什么样子的?“在我声明buchungArray的地方,IntelliJ向我显示了一个错误”-嗯,可能它试图将您的EJS模板视为JavaScript…但事实并非如此。代码在呈现并发送到浏览器时是否有效?这是上面的第二个代码部分。否。第二个代码部分显示的是EJS模板,而不是渲染时得到的JavaScript。@Quentin我不知道。。我是学习EJS的新手,必须使用我在app.JS中传递的呈现变量来执行JavaScript。呈现的客户端JS是什么样子的?“我声明buchungArray的地方,IntelliJ向我显示了一个错误”-好吧,可能它正试图将您的EJS模板视为JavaScript…事实并非如此。代码在呈现并发送到浏览器时是否有效?这是上面的第二个代码部分。否。第二个代码部分显示的是EJS模板,而不是渲染时得到的JavaScript。@Quentin我不知道。。我是学习EJS的新手,必须通过在我的应用程序中传递的呈现变量来使用JavaScript。js谢谢你的回答。但我仍然有一个问题,字符串的格式并不像我在上面的评论中说的那样。你知道为什么吗?出于同样的原因,但这并不重要,因为正常的HTML转义规则确实适用于属性值,所以浏览器将在传递到JS的document.currentScript.dataset.buchungen
时对其进行解码。好的,很好,谢谢!但是我认为我的循环函数有问题,因为我看不到约会对象。。你知道为什么吗?我在浏览器中遇到一个错误:TypeError:null不是一个对象(评估“document.currentScript.dataset”)它正常吗?@MertSilva-不。对我来说很好。谢谢你的回答。但我仍然有一个问题,字符串的格式并不像我在上面的评论中说的那样。你知道为什么吗?出于同样的原因,但这并不重要,因为正常的HTML转义规则确实适用于属性值,所以浏览器将在传递到JS的document.currentScript.dataset.buchungen
时对其进行解码。好的,很好,谢谢!但是我认为我的循环函数有问题,因为我看不到约会对象。。你知道为什么吗?我的浏览器中出现了一个错误:TypeError:null不是对象(正在评估“document.currentScript.dataset”)它正常吗?@MertSilva-不。对我来说很好。