Angular + Firebase没有绑定三种方式

时间:2014-09-21 10:34:56

标签: angularjs firebase

我刚刚开始使用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);

1 个答案:

答案 0 :(得分:0)

要将对象更改自动同步回Firebase,您必须致电$firebase(ref.child(id)).$asObject().$bindTo($scope, "data");。这会设置您正在寻找的绑定。

这两种方法都有其优点。当您明确触发ng-chang e事件时,您可以更好地控制何时保存数据。另一方面:使用$bindTo更像是一种“一劳永逸”的方法。