Javascript 根据Firebase对象更新DOM
每次Firebase上的值更改时,我都要更新我的DOM元素。我已经看到,Javascript 根据Firebase对象更新DOM,javascript,angularjs,firebase,angularfire,Javascript,Angularjs,Firebase,Angularfire,每次Firebase上的值更改时,我都要更新我的DOM元素。我已经看到,Angularfire处理三向数据绑定,但据我所知,只有直接从DOM获取$firebaseArray中的元素时,它才有效 我拥有的是DOM(图表)上的一个元素,它依赖于$firebaseArray上的一些数据,但我的元素从函数而不是直接从$firebaseArray获取数据。这意味着我必须先对$firebaseArray进行一些预处理,然后我的元素才能使用它 这就是我所拥有的: <pie-chart ng-repeat
Angularfire
处理三向数据绑定,但据我所知,只有直接从DOM获取$firebaseArray
中的元素时,它才有效
我拥有的是DOM(图表)上的一个元素,它依赖于$firebaseArray
上的一些数据,但我的元素从函数而不是直接从$firebaseArray
获取数据。这意味着我必须先对$firebaseArray
进行一些预处理,然后我的元素才能使用它
这就是我所拥有的:
<pie-chart ng-repeat="chart in myCtrl.charts"
data="chart.data"
options="chart.options"></pie-chart>
结果表明,通过这种方式,this.charts
只更新了一次,在对Firebase中的数据进行修改后,我必须刷新浏览器
- 有人知道我能做些什么来实现这种行为吗李>
// Get a reference to our posts
var ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog/posts");
// Get the data on a post that has changed
ref.on("child_changed", function(snapshot) {
var changedPost = snapshot.val();
console.log("The updated post title is " + changedPost.title);
});
每当您放置侦听器的位置发生变化时,就会调用此函数。
有关更多信息,请查看和。您可以向ref中添加子更改事件侦听器,如下所示:
// Get a reference to our posts
var ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog/posts");
// Get the data on a post that has changed
ref.on("child_changed", function(snapshot) {
var changedPost = snapshot.val();
console.log("The updated post title is " + changedPost.title);
});
每当您放置侦听器的位置发生变化时,就会调用此函数。
欲了解更多信息,请查看和。(emphasis mine):
返回从数据库下载初始数组数据时解析的承诺
这就解释了你看到的行为
要解决此问题,应扩展$firebaseArray
,如下所述:
一些相关问题:
- (包括AngularFire作者的完整示例)
$firebaseArray
,如下所述:
一些相关问题:
- (包括AngularFire作者的完整示例)