Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据Firebase对象更新DOM_Javascript_Angularjs_Firebase_Angularfire - Fatal编程技术网

Javascript 根据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

每次Firebase上的值更改时,我都要更新我的DOM元素。我已经看到,
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中的数据进行修改后,我必须刷新浏览器

  • 有人知道我能做些什么来实现这种行为吗
您可以向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);
});
每当您放置侦听器的位置发生变化时,就会调用此函数。
有关更多信息,请查看和。

您可以向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作者的完整示例)

正如我在Stack Overflow上回答的文档和几十个问题所表明的,如果您使用$loaded进行调试以外的任何操作,那么您可能做错了,并且可能希望使用$extend。(我为$loaded和$extend编写了代码)。正如我在Stack Overflow上回答的文档和几十个问题所表明的,如果您使用$loaded进行调试以外的任何操作,那么您可能做错了,并且可能希望使用$extend。(我为$loaded和$extend编写了代码)。