我刚刚开始使用AngularFire,似乎无法实现三向绑定。
在我的控制器中我有:
$scope.item = Item.find($stateParams.id);
在项目服务中我有
.factory('Item', ['$firebase','FIREBASE_URL', function ($firebase, FIREBASE_URL) {
var ref = new Firebase(FIREBASE_URL + 'items');
var Item = {
find: function(id) {
return $firebase(ref.child(id)).$asObject();
}
};
return Item;
}]);
我的视图中有一个input
,可以使用Firebase中的正确项目值进行更新,但是当我输入文本框时,它不会更新Firebase。有什么想法吗?
更新
我有一个解决方案但很高兴知道这是否是这样做的方法。
我的文本框中有一个ng-change
,它在我的Controller中调用一个函数。然后控制器调用$scope.item.$save($scope.item.text);
答案 0 :(得分:0)
要将对象更改自动同步回Firebase,您必须致电$firebase(ref.child(id)).$asObject().$bindTo($scope, "data");
。这会设置您正在寻找的绑定。
这两种方法都有其优点。当您明确触发ng-chang
e事件时,您可以更好地控制何时保存数据。另一方面:使用$bindTo
更像是一种“一劳永逸”的方法。