2017-09-05 116 views
1

我不知道为什么这不起作用,所以如果任何人都可以提供帮助,那就太棒了。我有嵌套函数,我用魔杖推送Firebase查询返回的值,并在另一个Firebase查询中再使用它,然后在循环中再次使用它。它本质上是一个穷人的无限滚动。尽管如此,我无法将“arr”变量的值存入外部的“numWanted”数组,因此我可以在下一个循环中再次使用它。我能做些什么来达到预期的效果?在嵌套函数外部推变量

此外,我已经试图使内部变量全局化,并将它们推送到另一个变量,但似乎并不奏效。可能我只是做错了?

在此先感谢..

$scope.loadMoreData = function() { 
    var numWanted = []; 
    console.log(numWanted); 
    firebase 
    .database() 
    .ref('products') 
    .orderByChild('rank') 
    .startAt(0) 
    .endAt(numWanted) 
    .limitToLast(3) 
    .once('value', function(products) { 
     products.forEach(function(product) { 
     var product = { 
      rank: product.val().rank 
     }; 

     arr = product.rank; 
     }); 
     numWanted.push(arr); 
     console.log(numWanted); 
    }); 
}; 

附:我意识到这段代码实际上并不工作,因为您无法在Firebase查询中使用数组。我的计划是在数组填充完成后提取我需要的数字。

回答

1

您与名为product的参数和名为product的局部变量有冲突。您需要重命名其中一个。