繁体   English   中英

无法读取未定义的属性“ 0”

[英]Cannot read property '0' of undefined

我有一个加载并返回JSON项目的网格。 添加了一个单选按钮过滤器以过滤那些项目。 每次选择单选按钮时,网格项目都会刷新以显示符合过滤条件的项目。

事情是,当我单击单选按钮时,什么也没有发生,并且看到Cannot read property '0' of undefined错误的Cannot read property '0' of undefined JSON已正确加载,并且没有任何404或500错误,我可以使用Chrome DevTools确认。 令人反感的代码行似乎是while (typeof n.main[l.toString()] != "undefined") 下面是包含上述代码的函数:

function j(n) {
var m = [],
    l;
if (n.main != "undefined") {
    l = 0;
    while (typeof n.main[l.toString()] != "undefined") {
        m.push(n.main[l.toString()]);
        l++
    }
}
if (GridApp.logging) {
    $.log(m.length + " talks loaded")
}
m = f(m);
m = GridMathFactory.applyGridMath(m);
GridModel.setTalkVOs(m);
d = e(d);
for (l = 0; l < d.length; l++) {
    d[l].talkIdx = l
}
    GridController.onTalksLoadSuccess()
}

这是函数n的代码:

function n() {
if (GridApp.logging) {
    $.log("GridMathFactory.calculateSubColumns()")
}
var B = 0;
var A;
for (var z = 0; z < q.length; z++) {
    var y = columnScale - 1;
    if (t[y] < f.length) {
        A = g(q[z], B)
    }
    B += (A) ? k : k;
    if (GridApp.logging) {
        $.log("Just calculated column " + z + "; Contained 1 ? " + A)
        }
    }
}
if (n.main != "undefined") {

应该:

if (n.main !== undefined) {

要么:

if (typeof n.main != "undefined") {

原来main是我调用的JSON中不存在的东西。 删除它,现在它可以正常工作了。

function j(n) {
var m = [],
    l;
if (n != "undefined") {
    l = 0;
    while (typeof n[l.toString()] != "undefined") {
        m.push(n[l.toString()]);
        l++
    }
}
if (GridApp.logging) {
    $.log(m.length + " talks loaded")
}
m = f(m);
m = GridMathFactory.applyGridMath(m);
GridModel.setTalkVOs(m);
d = e(d);
for (l = 0; l < d.length; l++) {
    d[l].talkIdx = l
}
    GridController.onTalksLoadSuccess()
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM