Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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
Firebase和AngularJS,如何从firebaseArray检索值_Angularjs_Firebase_Firebase Realtime Database_Data Retrieval - Fatal编程技术网

Firebase和AngularJS,如何从firebaseArray检索值

Firebase和AngularJS,如何从firebaseArray检索值,angularjs,firebase,firebase-realtime-database,data-retrieval,Angularjs,Firebase,Firebase Realtime Database,Data Retrieval,这似乎很简单。但我做不到。 我只想在控制器中获取Firebase DB的值。 Firebase数据库如下所示: users { 30549545 { name: "Marcelo" lastName: "Forclaz" years: 24 } } 在我的控制器中,我编写了以下代码: app.controller('usersCtrl', function($scope, $firebaseArray) { var ref

这似乎很简单。但我做不到。 我只想在控制器中获取Firebase DB的值。 Firebase数据库如下所示:

users {
    30549545 {
        name: "Marcelo"
        lastName: "Forclaz"
        years: 24
    }
}
在我的控制器中,我编写了以下代码:

app.controller('usersCtrl', function($scope, $firebaseArray) {
    var ref = firebase.database().ref('users');
    $scope.userdata = $firebaseArray(ref);
});

在HTML代码的重复中,迭代工作得很好。但是我需要在我的控制器中获得“年”值才能将其用于另一个命令,我如何才能做到?我试过几种不同的方法,但没有达到预期的效果。我意识到,从Firebase width AngularJS检索数据并不像让它变得简单和纯JavaScript那么容易。

您必须等待用户数据加载:

app.controller('usersCtrl', function($scope, $firebaseArray) {
var ref = firebase.database().ref('users');
$scope.userdata = $firebaseArray(ref);
$scope.userdata.$loaded()
    .then(function(){
        console.log($scope.userdata);
    });
});
终于,我明白了

$scope.userdata.$ref().once('value', function(snap) {
    angular.forEach(snap.val(), function(index)) {
        console.log(index.years)
    }
}
好啊但是,现在如何获得“年”值?我编写了您的代码,控制台日志返回了包含引用数据的整个对象。我只需要他多年的价值。我尝试了console.log($scope.data.years),但返回的是未定义的。