我在我的应用程序中使用 AngularJS 和 FireBase。我喜欢使用 angularFire 将 FireBase 对象引用绑定(bind)到 Angular 作用域,但是如果我想在事务中执行绑定(bind)作用域对象的更新 - 我必须创建一个新的 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 绑定(bind)范围对象来执行事务?
最佳答案
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 = ...
});
});
关于FireBase 与 angularFire 的事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18178109/