【问题标题】:How to get the json array length from firebase database如何从firebase数据库中获取json数组长度
【发布时间】:2016-12-22 20:57:12
【问题描述】:

我有一个代码可以检索一个简单的 json 数组,我只想循环

var ref = new Firebase("firebase object path");
var sync = $firebase(ref);
var result = sync.$asArray();

然后我无法使用“result.length”获取 json 数组长度,它只给出 0 长度的结果,但不是确切的值,谁能帮助我...?

【问题讨论】:

  • 您在这里使用的是哪个版本的 AngularFire?它看起来像是多年前的旧 alpha 版本。拜托,请更新到现代的东西。

标签: javascript firebase firebase-realtime-database angularfire


【解决方案1】:

可能是因为它还没有加载。看起来您正在使用旧版本的 angularFire,因为 $asArray 已弃用,请参阅:When does one use $asArray vs $asObject in Angularfire?https://github.com/firebase/angularfire/blob/master/docs/migration/09X-to-1XX.md

升级后(如果可以的话)

$firebaseArray(ref).$loaded().then(function(data){
    console.log(data.length)
});

我似乎找不到 $asArray 出现时的文档,但通过第二个链接查看我认为您可以像这样完成它:

sync.$asArray().$loaded().then(function(array) {
    console.log(array.length);
});

带手表:

$scope.data = [];
sync.$asArray().$loaded().then(function (array) {
    $scope.data = array;
});
$scope.$watch('data', function (newValue, oldValue) {
    console.log($scope.data.length);
});

【讨论】:

  • 非常感谢 raplay...但是当我对我的 firebase 对象进行更改时,它不会更新长度值,或者我必须刷新我的页面才能看到更改我应该做什么。 ...?
  • 您必须连接一个值更改事件:firebase.google.com/docs/database/web/… 或连接一个 .$watch
  • 这是使用 .$watch 的正确方法 lo 监听数组长度变化...sync.$asArray().$loaded().then(function(array) len = array.length; }); $scope.$watch($scope.len, function(newValue,oldValue) { $scope.len = $scope.len; });
  • 更新了答案
  • 控制台响应...数据未定义..即.$watch中的数据
猜你喜欢
  • 1970-01-01
  • 2018-06-26
  • 2019-03-10
  • 1970-01-01
  • 1970-01-01
  • 2016-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多