对于Jade中node.js中声明的变量,For循环在javascript中不起作用
For loops not working in Javasctipt for a declared variable from node.js in Jade
我正在学习与node.js和JADE一起工作,并且在JADE文件内的javascript中制作for循环工作有问题。我正试图用一个简单的代码来学习它。我正在传递一个数组从我的数据库到翡翠文件。当我直接调用数组的特定元素时(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;
这是我的jade文件:
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,但这两个环境仍然彼此分开管理,所有服务器端代码在客户端代码开始之前运行到完成。
解决这个问题的一个选项是将整个lat
输出到视图中的客户端变量,使用JSON和JavaScript的共享语法,并在客户端迭代它。
script.
$('button').click(function () {
var lat = !{ JSON.stringify(lat) };
for (var i = 0; i < 2; i++) {
// ...
}
});
相关文章:
- 为什么JavaScript在for循环为3时向所有4发出警报
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 我的javascript for循环不起作用
- For循环冻结Javascript
- 如何在for循环中添加事件侦听器
- 双“for”循环(循环)
- javascript for循环不起作用
- for循环中的javascript if语句找不到==
- Javascript在for循环中等待处理请求
- 我没有'I don’我不理解for在循环中的用途
- 为什么在 Javascript 中使用空的 for 循环 - for(;;).
- 错误后如何停止循环“FOR”
- 如何使用循环 for 与 java 脚本一起检查输入中的值
- 如何正确使用ngRepeat,同时使用循环for
- 是否可以使用循环(for/while)来制作动画?
- 在循环for循环时如何进入和退出
- Javascript原型循环for in数组
- 在对象数组中循环for
- Javascript循环:for循环工作,但不能映射
- 如何创建一个循环"for"在json