AngularFire:如何观察物体的孩子?

时间:2014-10-11 19:14:30

标签: angularfire watch

我想听一个对象的特定孩子所做的更改。 对于前者 我将数据存储在firebase中

users: {
  user1:{
    info:{ name: 'Jon', age:'21'},
    otherThings:{}
  },
  user2:{
    info:{ name: 'Mark', age:'20'},
    otherThings:{}
  }
}

现在,我可以通过

收听user1中的更改
$scope.userObj = $firebase(userRef).$asObject();
$scope.userObj.$watch(function() {
   console.log("data changed!");
});

但有没有办法只在其子元素$ scope.userObj.name更改时才听取更改?
它应该只有userObj,userObj.child('name')或类似的东西。

1 个答案:

答案 0 :(得分:1)

Angular的$ watch命令接受点表示法。只需观看相应的字段demo

$scope.$watch('userObj.info.name', callback);

$scope docs中阅读更多内容。这几乎是Angular 101。

但最有可能的是,这是错误的做法。每当你开始尝试观察和操纵控制器中的数据时,你可能都走错了路线。让视图处理观察,并使用$ extendFactory等数据转换在服务或(在AngularFire的情况下)进行数据转换。