gpt4 book ai didi

javascript - Angular 火 : run method when $firebaseArray changes

转载 作者:行者123 更新时间:2023-11-29 19:19:00 26 4
gpt4 key购买 nike

我有以下设置:

var x = $firebaseArray(ref);
x.$loaded().then(function () {

self.y = //I change y based on x

}

根据文档,$loaded 只运行一次,但我需要在每次 x 更新时更改 self.y。我知道我可以扩展 $firebaseArray 但在我的情况下这不是一个选项,因为 self.y 也依赖于另一个 $firebaseArray

所以我的问题是:有没有办法在每次 $firebaseArray 更新时运行一个方法,甚至在一般情况下 在 JavaScript 中有没有办法观察一个用于更改的变量,并在每次更改时运行一个方法。

最佳答案

如果您想在数据发生变化时对数据执行某些操作,$loaded() 是错误的方法。相反,您需要 extend $firebaseArray并覆盖 $$added, $$changed... 方法。参见 this fiddle for an example of extending a $firebaseObject ,这很相似。

但如果您没有将 $firebaseArray() 绑定(bind)到范围,您不妨使用常规的 Firebase JavaScript SDK 并使用 on('value':

ref.on('value', function(snapshot) {
self.y = // change y based on snapshot.val()
});

AngularFire 是一个很棒的库,用于将 Firebase 数据绑定(bind)到 AngularJS View 。它不能替代 Firebase JavaScript SDK。事实上,它是建立在 Firebase JavaScript SDK 之上的,两者可以完美地互操作。因此,请使用 AngularFire 将数据绑定(bind)到 View (如果您需要自定义数据,请扩展 $firebaseArray),对于未绑定(bind)到的数据,请使用 Firebase JavaScript SDK查看。

关于javascript - Angular 火 : run method when $firebaseArray changes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33940321/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com