$.getJSON 调用中的 JavaScript 变量范围
JavaScript Variable Scoping in $.getJSON Calls
为什么当 showOrders 被调用时,订单数组是空的? 我的服务返回 4 个对象,我可以在 .push 调用中完成项目初始化,但返回的数组始终为空。
var showOrders = function(orders){
$.each(orders, function(i, val){
alert(val.Order + "::" + val.Href);
});
}
var orders = (function(d){
var _r = [];
$.getJSON("/_vti_bin/listdata.svc/Orders", function (data) {
for(var i = 0; i < data.d.results.length; i++)
{
var o = data.d.results[i];
_r.push({
Id: o.Id,
Order: o.Order,
PurchaseDate: o.PurchaseDate,
CustomerPO: o.CustomerPO,
PurchasedBy: o.PurchasedBy,
SubTotal: o.SubTotal,
Status: o.Status,
Href: o.Path + "/DispForm.aspx?ID=" + o.Id
});
}
return _r;
});
d(_r);
})(showOrders);
$.getJSON 正在执行异步调用。 您需要在 getJSON-call 的回调中执行 d-call(在循环之后):
var orders = (function(d){
var _r = [];
$.getJSON("/_vti_bin/listdata.svc/Orders", function (data) {
for(var i = 0; i < data.d.results.length; i++)
{
var o = data.d.results[i];
_r.push({
Id: o.Id,
Order: o.Order,
PurchaseDate: o.PurchaseDate,
CustomerPO: o.CustomerPO,
PurchasedBy: o.PurchasedBy,
SubTotal: o.SubTotal,
Status: o.Status,
Href: o.Path + "/DispForm.aspx?ID=" + o.Id
});
}
d(_r);
});
})(showOrders);
相关文章:
- 将函数的上下文应用于javascript变量
- 如何通过ajax刷新JSF填充的javascript变量
- Javascript变量赋值|
- 限制javascript变量的最小/最大整数
- 来自文本输入null的html javascript变量
- 访问jsrender模板中的全局javascript变量并更新它
- 从数据库中获取数据并插入JavaScript变量
- 如何将javascript变量传递到Meteor Spacebars模板中
- 将JavaScript变量保存到Rails模型
- 在if语句下的html中使用javascript变量
- Javascript变量分配-按类别
- 操作javascript变量[HTML]以只显示文本
- 无法比较javascript变量
- 如何将smarty变量与javascript变量进行比较
- 如何使用PHP将javascript变量添加到mysql数据库中
- Javascript 变量使用 jquery 查找变量
- 重新加载页面时Javascript变量发生变化
- 在asp classic中使用javascript变量
- 全局Javascript变量变为null
- 如何向服务器端提交javascript变量