我正在尝试使用以下示例将评论存储在Firebase中。该脚本循环遍历json对象并将HTML结果附加到全局变量。但是,循环中的赋值不会附加到全局变量。
var doccmnthtml = '';
try {
$.getJSON( "https://ocw.firebaseio.com/.json", function( json ) {
for (var key in json) {
if (json.hasOwnProperty(key)) {
// Cannot append to the variable
doccmnthtml += '<b>'+json[key].username+'</b><br/>'+json[key].text+'<br/><br/>';
}
}
});
}
catch(err) {
console.log(err.message);
}
alert(doccmnthtml);
答案 0 :(得分:2)
alert
在ajax调用之外,因为异步变量未被分配。
请参阅以下代码:我已在alert
电话中加入了success
。
var doccmnthtml = '';
try {
$.getJSON("https://ocw.firebaseio.com/.json", function(json) {
for (var key in json) {
if (json.hasOwnProperty(key)) {
// Cannot append to the variable
doccmnthtml += '<b>' + json[key].username + '</b><br/>' + json[key].text + '<br/><br/>';
}
}
alert(doccmnthtml);
});
} catch (err) {
console.log(err.message);
}
&#13;
答案 1 :(得分:0)
问题是getJSON是一个同步调用,这意味着在设置响应之前调用了警报。
您可以通过在成功响应中调用回调函数来解决此问题。