2017-09-05 10 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); 
    }); 
}; 

P.S. firebaseクエリで配列を使用できないので、このコードは実際には機能しません。私の計画は、アレイにデータが入ったら、必要な数を抽出することです。

答えて

1

productという名前のパラメータとproductという名前のローカル変数が競合しています。それらの名前の1つをリネームする必要があります。

関連する問題