2017-09-05 143 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的局部變量有衝突。您需要重命名其中一個。