我正在尝试使用firebase
从angularfire
获取数据,但我将错误视为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'});
}]);
})();
答案 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
不会为后续更新触发。