Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
Javascript 获取firebase返回的数组的长度_Javascript_Arrays_Angularjs_Firebase_Angularfire - Fatal编程技术网

Javascript 获取firebase返回的数组的长度

Javascript 获取firebase返回的数组的长度,javascript,arrays,angularjs,firebase,angularfire,Javascript,Arrays,Angularjs,Firebase,Angularfire,数组的常规.length属性在firebase返回的数组上不起作用。以下是返回阵列的console.log: 0: Object 1: Object 2: Object 3: Object 4: Object $$added: function () { [native code] } $$error: function () { [native code] } $$moved: function () { [native code] } $$removed: function () { [na

数组的常规.length属性在firebase返回的数组上不起作用。以下是返回阵列的console.log:

0: Object
1: Object
2: Object
3: Object
4: Object
$$added: function () { [native code] }
$$error: function () { [native code] }
$$moved: function () { [native code] }
$$removed: function () { [native code] }
$$updated: function () { [native code] }
$add: function () { [native code] }
$destroy: function () { [native code] }
$getRecord: function () { [native code] }
$indexFor: function () { [native code] }
$inst: function () { [native code] }
$keyAt: function () { [native code] }
$loaded: function () { [native code] }
$remove: function () { [native code] }
$save: function () { [native code] }
$watch: function () { [native code] }
length: 5
__proto__: Array[0]
concat: function concat() { [native code] }
constructor: function Array() { [native code] }
every: function every() { [native code] }
filter: function filter() { [native code] }
findIndex: function (a){if(null==this)throw new TypeError("Array.prototype.find called on null or undefined");if("function"!=typeof a)throw new TypeError("predicate must be a function");for(var b,c=Object(this),d=c.length>>>0,e=arguments[1],f=0;d>f;f++)if(f in c&&(b=c[f],a.call(e,b,f,c)))return f;return-1}
forEach: function forEach() { [native code] }
indexOf: function indexOf() { [native code] }
join: function join() { [native code] }
lastIndexOf: function lastIndexOf() { [native code] }
length: 0
map: function map() { [native code] }
pop: function pop() { [native code] }
push: function push() { [native code] }
reduce: function reduce() { [native code] }
reduceRight: function reduceRight() { [native code] }
reverse: function reverse() { [native code] }
shift: function shift() { [native code] }
slice: function slice() { [native code] }
some: function some() { [native code] }
sort: function sort() { [native code] }
splice: function splice() { [native code] }
toLocaleString: function toLocaleString() { [native code] }
toString: function toString() { [native code] }
unshift: function unshift() { [native code] }
甚至console.log length属性也显示为5,但由于某些原因,调用length属性返回0

编辑:


数组的长度属性设置为5,但proto的长度属性为0。.length属性返回协议下的0值

请记住,调用
$asArray
是一种异步操作

$scope.notes = $firebase(ref).$asArray();
console.log($scope.notes.length); // the data has not loaded yet
在控制台中看到长度为零的原因是,在缓冲日志和打印日志之间,值可能会发生变化,这可能会产生误导。尝试使用断点查看执行时的值

由于数据是异步的,您需要使用
$loaded
承诺

$scope.notes.$loaded().then(function(notes) {
   console.log(notes.length); // data is loaded here
});

请将您的
$scope.Notes
输出到控制台并显示它的快照,这将有助于这与Angular Js有什么关系?如果它返回0,它肯定是空的。选择未被破坏()您是否尝试过官方文档@Wells这是一个角度应用程序。如何在DOM中显示长度值?是否会在不添加手表的情况下每天更新?谢谢David的帮助)