[英]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.