For $ firebaseArray中的循环

时间:2015-06-10 13:46:59

标签: arrays angularjs loops firebase angularfire

我发现了一些类似的主题,但其中大多数已经过时,因为我正在使用angularfire 1.1.1。

我有一个AngularJS应用程序在Google地图上创建标记。数据存储在外部JSON文件中,当我将其转换为数组时,它工作得很好。当我将数据放入firebase数据库时,它停止工作。带有数据的ng指令工作得很好,但是当访问js代码中的数组数据时,它并没有真正起作用。

    app.controller('MapCtrl', ['$scope', '$firebaseArray', function($scope, $firebaseArray){

var ref = new Firebase("https://radiant-inferno-6439.firebaseio.com/tracks");
var syncObject = $firebaseArray(ref);
    ...

使用旧的脱机JSON版本记录,syncObject如下所示:

    [Object, Object, Object]
    0: Object
    1: Object
    2: Object
    length: 3
    __proto__: Array[0]

但现在看起来像这样:

    []
    0: Object
    1: Object
    2: Object
    $$added: () { [native code] }
    $$error: () { [native code] }
    $$getKey: () { [native code] }
    $$moved: () { [native code] }
    $$notify: () { [native code] }
    $$process: () { [native code] }
    $$removed: () { [native code] }
    $$updated: () { [native code] }
    $add: () { [native code] }
    $destroy: () { [native code] }
    $getRecord: () { [native code] }
    $indexFor: () { [native code] }
    $keyAt: () { [native code] }
    $loaded: () { [native code] }
    $ref: () { [native code] }
    $remove: () { [native code] }
    $save: () { [native code] }
    $watch: () { [native code] }
    length: 3
    __proto__: Array[0]

为什么会那样?当我打印数组的长度时,它表示0.我尝试了$ loaded函数,但它没有影响。

    syncObject.$loaded().then(function(syncObject) {
 console.log(syncObject.length);
    });

我也无法访问数组的属性,因此无法遍历它。

1 个答案:

答案 0 :(得分:0)

看起来$ loaded()方法不起作用。我在加载数据和执行其他操作之间添加了2秒的超时,因此它开始工作。