Jquery.getJson遗漏了什么
Jquery.getJson missing something?
我有下面的一段代码,并试图用Web服务返回的json数据填充我的slickgrid。但是网格并没有被填充。返回的数据是空的,因为我在警报窗口中没有看到任何混合。
$(function ()
{
var slickdata = [];
$.getJSON("comm/j/abc?action=hi", function(data)
{
// data is a JavaScript object now. Handle it as such
for (var i=0;i<data.length;i++)
{
alert("slickdata i" );
slickdata[i] =
{
month: data[i].month,
teamed: data[i].teamed,
net: data[i].net
};
}
});
alert(slickdata);
// dataView = new Slick.Data.DataView({ inlineFilters: true });
grid = new Slick.Grid("#myGrid", slickdata, columns, options);
// grid.setSelectionModel(new Slick.RowSelectionModel());
})
我的服务调用输出如下(JSONData(
{
p: {
month: "May-2014",
teamed: "Y",
net: 100000
}
}
控制台上没有显示错误
如果你想要一个对象数组(我对你的数据结构有点困惑(,那么你可以使用for循环来迭代它,但根据你的JSON输出,没有数组,你只是得到一个对象。所以你只需要得到这个对象并使用它:
var slickdata = [];
$.getJSON("comm/j/abc?action=hi", function(data) {
myData = data.p;
slickdata[0] = {
month: myData.month,
teamed: myData.teamed,
net: myData.net
};
});
你确定你没有从webservice得到任何回报吗?试着在for
循环之前添加这个:
alert(data.toSource());
然后,您应该编写alert(slickdata.toSource());
,而不是alert(slickdata);
IMHO,因为它是一个对象数组。
首先,如果对象没有长度,则不能根据对象的长度对其进行循环。在您的情况下,您可以简单地使用data.p.
slickdata[0] = data.p; // this replaced your entire for loop
此外,您需要在成功回调内部初始化网格,否则它无法访问slickdata。
$(function(){
$.getJSON("comm/j/abc?action=hi", function(data) {
grid = new Slick.Grid("#myGrid", [data.p], columns, options);
});
});
我不知道网格是否能处理这些数据。
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 全局变量和全局对象的属性之间有什么区别吗
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 如何将getJson的响应保存在全局变量中
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在ember/handlers中使用value和valueBinding有什么区别
- 什么'在webpack外部设置中,reactDom和reactDom不同
- 在JavaScript中拆分日期字符串的更好方法是什么
- 为什么$.brower被弃用?还有什么更好的替代方案
- 什么是&&在没有if的行中的变量之间
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 使用什么而不是$.getJSON()
- 什么是Jquery的$.getJSON的vanilla JS版本
- $. getjson()在IE9中工作,但不在Chrome和FireFox中,我的代码有什么问题
- 这个getJson调用有什么问题?
- Jquery.getJson遗漏了什么
- 美元和美元之间的区别是什么?get和$. getjson