【发布时间】:2014-03-11 00:24:30
【问题描述】:
我有一个 AngularJS 服务,它返回一个 firebase ref。
.factory('sessionManager', ['$firebase','$scope', function($firebase){
var ref=new Firebase('https://telechat.firebaseio.com/sessions');
return $firebase(ref);
}])
在控制器中,我添加了依赖并调用了$bind。
$scope.items=sessionManager;
$scope.items.$bind($scope,'sessions').then(function(unbind){
unbind();
});
但是当我将它打印到控制台时,除了数据数组之外,返回的数据还有$add、$set、.. 等函数的集合。
为什么会这样?我做错了吗?
【问题讨论】:
-
您似乎正在打印 Firebase 数据引用或快照,而不仅仅是其数据。您是否尝试打印快照的
.val()?见firebase.com/docs/reading-data.html -
是的,我一开始就是这么想的。但我正在这样做 firebase.com/docs/angular/index.html 。 $scope.sessions 应该有 data 。该对象没有以下方法 .val() 或 .on() ---> 返回错误。
-
我也面临这个问题。
$scope.items不仅仅是一个普通的 Javascript 对象,它是一个 Firebase 引用。它违背了 3 路数据绑定的目的。 -
我希望应该是一个错误。
-
有趣的是你仍然可以直接修改对象,它会反映变化。例如,您可以执行
$scope.sessions[10] = {username: "admin"}并添加一个密钥为 10 的新会话。
标签: firebase angularfire