2

シンプルな配列の長さを取得しようとしていますが、次のangularFireCollectionようには見えません:

var stf = new FireBase("http://myfirebase-app.firebaseio.com/staff");

function staffListCtrl($scope, angularFireCollection){
    $scope.staff = angularFireCollection(stf);
    console.log($scope.staff.length);
}

コンソールの出力には次のように表示されます。

0

私が知っていることは間違っています。長さとして約 5 が返されるはずです ( $scope.staff.

$scope.staff の出力

この完全に単純なJSタスクを完全に乗り越えることができないように見えるので、どんな助けも大歓迎です。

4

3 に答える 3

1

この場合、コールバック内で取得された要素の数を出力する正しい方法は次のとおりです。

var stf = new FireBase("http://myfirebase-app.firebaseio.com/staff");
function staffListCtrl($scope, angularFireCollection) {
    $scope.staff = angularFireCollection(stf, function() {
        console.log(stf.numChildren());
    });
}  

これは、 $scope.staff への実際の割り当てが行われる前に、最初のコールバック関数が呼び出されるためです。したがって、コールバック関数内では、Firebase DataSnapshot オブジェクトstfのみにアクセスできます。お役に立てれば。

于 2013-09-27T07:02:35.727 に答える