Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法读取属性';结果';未定义的无限卷轴_Javascript_Angularjs_Scroll_Infinite Scroll - Fatal编程技术网

Javascript 无法读取属性';结果';未定义的无限卷轴

Javascript 无法读取属性';结果';未定义的无限卷轴,javascript,angularjs,scroll,infinite-scroll,Javascript,Angularjs,Scroll,Infinite Scroll,让我的无限卷轴处理一些奇怪的行为。我一直收到一个类型错误:无法读取未定义的属性“result” 我的数据被检索,但不断地获取更多的数据,导致我的表中出现空白的html行,我不确定发生了什么 在下面的代码中,我尝试了result.data | data,然后是vm.items[i] 谢谢 代码如下: vm.items = []; vm.busy = false; vm.loadMore = function () { if (vm.busy) return;

让我的无限卷轴处理一些奇怪的行为。我一直收到一个类型错误:无法读取未定义的属性“result”

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

在下面的代码中,我尝试了result.data | 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;
                }
            });
vm.items=[];
vm.busy=false;
vm.loadMore=函数(){
if(vm.busy)返回;
vm.busy=true;
productDataService.getProductList()
.then(函数(结果){
console.log(result.data);
vm.items=result.data;
对于(var i=0;i
vm.items=[];
vm.busy=false;
vm.loadMore=函数(){
if(vm.busy)返回;
vm.busy=true;
productDataService.getProductList()
.then(函数(结果){
console.log(result.data);
对于(var i=0;i
我怀疑此块:

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

每次该for循环迭代时,您都会将一个元素添加到
vm.items
,使
vm.items.length
=
vm.items.length+1
,您正在使用该元素作为for循环中的条件:
i
。此循环正在追逐它自己的尾巴,即,您有一个无限循环。

e line vm.items=result.data;然后迭代result.data,这复制了结果。原来的结果是77,这个逻辑现在是154,htmlI中仍然有额外的表行。我编辑了答案,逻辑是新的项应该附加到vm.items数组中。我不知道服务“getProductList”是如何实现的知道对结果进行分页。
for (var i = 0; i < vm.items.length; i++) {
       vm.items.push(vm.items[i].result);                        
       vm.busy = true;
}