angularfire绑定到原始

时间:2014-04-28 11:30:36

标签: angularjs firebase angularfire

我试图用angularfire绑定到基元。以下是我如何做到这一点:

      $firebase(fb.child('counts/node')).$on('value', function (obj) {
        $scope.nodeCount = obj.snapshot.value
      })

这是对的吗?这个API似乎与firebase的其余部分非常不同。我希望得到一个ss作为回调并做ss.val(),但似乎并非如此。有人可以确认这是不是应该如何,或者我是否做错了。感谢。

1 个答案:

答案 0 :(得分:0)

通常,如getting started guideAPI中所述,您只需直接在视图中访问数据:

// javascript
$scope.messages = $firebase(new Firebase(URL));

<!-- html -->
<li ng-repeat="message in messages">{{message}}</li>

如果要迭代控制器(坏)或服务(更好)中的数据,可以使用$ getIndex()将订单中的键作为数据库读取。

// javascript
var ref = $firebase(new Firebase(URL));
ref.$on('loaded', function() {
   angular.forEach(ref.$getIndex(), function(key) {
      console.log('the next message is', key, ref[key]);
   });
});

如果您实际上尝试同步单个原始值,则几乎不需要angularFire:

$scope.primitive = null;
var ref = new Firebase(URL);
ref.on('value', function(snap) { $scope.primitive = snap.val(); });

$scope.saveValue = function(newValue) {
   ref.set(newValue);
};

但肯定有可能:

// javascript
$scope.primitive = $firebase(new Firebase(URL));

<!-- html -->
<input ng-model="primitive.$value" />

以上链接涵盖了所有这些内容,在开始使用Angular + Firebase之前,应将其视为必读内容。

更改为0.8

angularFire 0.8即将推出。它将使用$ asArray(),$ asObject()以及提供.then()方法稍微改变一下这个结构,所以有点像这样:

// javascript
var ref = $firebase(new Firebase(URL));
$scope.messages = ref.$asArray();

$scope.ref.then(function() {
   angular.forEach($scope.messages, function(message) {
      console.log('the next message is', message.$id);
   });
});

<!-- html -->
<li ng-repeat="message in messages">{{message}}</li>