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

`firebase` throws error on fetching data from server

我正在尝试使用 angularfirefirebase 获取数据,但我抛出了错误 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'});

        }]);

})();

这不是您初始化 $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。将 $firebaseArray 绑定到范围,而不是 $loaded+console.log

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

$scope.projects = $firebaseArray(projectData)    

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

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

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