使用angularFire的FireBase事务

时间:2013-08-12 00:32:40

标签: firebase angularfire

我在我的应用中使用AngularJS和FireBase。我喜欢使用angularFire将FireBase对象引用绑定到Angular作用域,但是如果我想在事务中执行绑定作用域对象的更新 - 我必须创建一个新的FireBase引用,它会杀死使用angularFire的所有美丽,并增加了潜在的问题,因为有两个引用指向同一个FireBase对象:

        angularFire(travelBidsFirebaseRef + "/auction/" + $scope.auctionId, $scope, 'auction', {})
        .then(function(disassociate) {
                $scope.auctionRef = travelBidsFirebaseRef.child('auction/' + $scope.auction.id);
        ...

                $scope.auctionRef.transaction(function(auction) {
                    auction.price = Math.round((auction.price + 0.01) * 100)/100;
                });
        ...
        }

有没有办法使用angularFire绑定范围对象来执行事务?

1 个答案:

答案 0 :(得分:2)

AngularFire将接受firebaseRef作为第一个参数,因此推荐的方法是使用它来执行事务:

var ref = new Firebase("https://my-firebase.firebaseio.com/auction/" + $scope.auctionId);
angularFire(ref, $scope, "auction", {}).then(function() {
  ref.transaction(function(auction) {
    auction.price = ...
  });
});