Angularfire中存在$ destroy()的原因是什么?

angularfire的文档说:

https://www.firebase.com/docs/web/libraries/angular/api.html#angularfire-firebasearray-destroy

停止监听此阵列使用的事件和可用内存(清空本地副本)。更改不再与Firebase同步或与Firebase同步。

sync = $firebase(ref).$asArray();
...
....
sync.$destroy()

我能不能做:
sync = null

或者
delete sync

还是出于某种原因我真的应该使用$ destroy()吗?

最佳答案

$destroy() exists to empty the data and unbind event listeners.如果需要取消绑定(bind)$firebaseArray()$firebaseObject(),则可以使用$destroy(),但我认为使用解决的unbind函数会更好。

这是来自angularfire-seed的代码段

  var unbind;
  // create a 3-way binding with the user profile object in Firebase
  var profile = $firebaseObject(fbutil.ref('users', user.uid));
  profile.$bindTo($scope, 'profile').then(function(ub) { unbind = ub; });

  // expose logout function to scope
  $scope.logout = function() {
    if( unbind ) { unbind(); }
    profile.$destroy();
    ...
  };

关于angularfire - 为什么要使用angularfire $ destroy()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28196069/

10-08 21:55