`firebase`在从服务器获取数据时抛出错误

时间:2015-07-09 09:53:17

标签: firebase angularfire

我正在尝试使用firebaseangularfire获取数据,但我将错误视为TypeError: $firebaseArray.$loaded is not a function。如何解决这个问题?

这是我的工厂模块:

(function () {

    "use strict";

    angular
        .module("tcpApp")
        .factory("server", ['$resource','$firebaseArray', function ($resource, $firebaseArray) {

            var projectsData = new Firebase("https://tcp.firebaseio.com/projects");

            $firebaseArray.$loaded(projectsData).then(function (data) {

                console.log(data);

            })


            //return $resource('http://localhost:2403/projects/:id', {id:'@id'});

        }]);

})();

1 个答案:

答案 0 :(得分:3)

这不是你初始化$firebaseArray的方式。代替:

var projectsData = new Firebase("https://tcp.firebaseio.com/projects");

$firebaseArray(projectData).$loaded(projectsData).then(function (data) {
    console.log(data);
})

请花一点时间关注AngularFire quickstart and programming guide,因为这样可以为您节省很多时间。

该文档还将显示the best way for monitoring the loading of data。将$loaded绑定到范围:

,而不是console.log + $firebaseArray
var projectsData = new Firebase("https://tcp.firebaseio.com/projects");

$scope.projects = $firebaseArray(projectData)    

然后在您的视图中,HTML显示如下:

<pre>{{ projects | json }}</pre>

一般来说,几乎不需要$loaded。当数组的初始内容已加载时,它只会触发一次。但是$firebaseArray是一个同步数组,在初始加载后可能会多次更新,并且$loaded不会为后续更新触发。