无法读取未定义无限滚动的属性“结果”

时间:2017-03-22 21:12:59

标签: javascript angularjs scroll infinite-scroll

让我的无限卷轴处理一些奇怪的行为。我一直得到一个TypeError:无法读取undefined的属性'result'。

我的数据已被检索,但不断获取更多数据,导致我的表格中出现空行html,而且我不确定发生了什么。

在下面的代码中,我尝试过result.data |数据,然后是vm.items [i]

由于

以下是代码:

    vm.items = [];
    vm.busy = false;
    vm.loadMore = function () {
        if (vm.busy) return;
        vm.busy = true;
        productDataService.getProductList()
            .then(function (result) {                   
                console.log(result.data);
                vm.items = result.data;
                for (var i = 0; i < vm.items.length; i++) {
                    vm.items.push(vm.items[i].result);                        
                    vm.busy = true;
                }
            });

3 个答案:

答案 0 :(得分:0)

vm.items = [];
    vm.busy = false;
    vm.loadMore = function () {
        if (vm.busy) return;
        vm.busy = true;
        productDataService.getProductList()
            .then(function (result) {                   
                console.log(result.data);
                for (var i = 0; i < result.data.length; i++) {
                    vm.items.push(result.data[i].result);                        

                }
                vm.busy = false;
            });

答案 1 :(得分:0)

我怀疑这块:

for (var i = 0; i < vm.items.length; i++) {
       vm.items.push(vm.items[i].result);                        
       vm.busy = true;
}

每次for循环迭代时,您都会向vm.items添加一个元素,使vm.items.length = vm.items.length + 1成为您for循环中的条件: i < vm.items.length 即可。这个循环正在追逐自己的尾巴,即你有一个无限循环。

答案 2 :(得分:0)

删除行 vm.items = result.data; 并迭代 result.data 而不是