[英]For loops not working in Javasctipt for a declared variable from node.js in Jade
我正在学习使用node.js和JADE,并且在让for循环在jade文件中的javascript中工作时遇到问题。 我试图用一个简单的代码来学习它。 我正在将数组从数据库传递到jade文件。 当我直接调用数组的特定元素时,它可以工作(var x =!{lat [2]}; alert(x),但是当我将它放入for循环中时,它就无法工作。这是我的app.js码:
app.get('/test', function(req, res){
getlat(function(err, lat){
if(err){
return res.send(500);
}console.log(lat);
res.render('test', {lat:lat});
});
这是从数据库中检索经纬度的位置:
var mongoose = require ('mongoose');
function getlat(callback){
var lat = new Array();
mongoose.model('stories').find({},function(err, companies) {
if(err){
return callback(err, lat);
}
for (var i = 0; i < companies.length; i++) {
lat[i] = companies[i].Lat;
}
return callback(null, lat);
});
}
module.exports = getlat;
这是我的玉档案:
body
button.btn.btn-info Click Here!
script.
$('button').click( function() {
for (var i = 0; i < 2; i++) {
var x = !{lat[i]};
alert(x);
});
});
如果有人告诉我我在哪里犯错,我将不胜感激。 谢谢
问题是lat
仅存在于服务器端,而i
仅存在于客户端。
尽管这两种环境都使用JavaScript,但是这两种环境仍是彼此分开管理的,所有服务器端代码都在客户端代码开始之前运行完毕。
解决此问题的一种方法是使用JSON和JavaScript的共享语法,将整个lat
输出到视图中的客户端变量,并在客户端上进行迭代。
script.
$('button').click(function () {
var lat = !{ JSON.stringify(lat) };
for (var i = 0; i < 2; i++) {
// ...
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.