当前位置: 首页 > 面试题库 >

Angular JS firebase。(child_added)未在页面上呈现

凌华奥
2023-03-14
问题内容

我的Firebase数据库中有一些条目,这些条目正试图显示在html页面上。console.log显示数据库中的子级,但未显示在页面上。这是我的代码:

D B:

quiz-show  
    user
        -JuYaVjjm0zY59vK48aR: "user1"
        -JuYaXzrT2-_pfhpr58o: "user2"
        -JuYaZd_oS-hi5zqYLhX: "user3"
        -JuYaaNNd24Icruv18LH: "user4"

控制器:

'use strict';

angular.module('phoneQuizAnswer')
    .controller('testCtrl', function ($scope, $firebaseObject) {
        var fireRef = new Firebase('https://[myfirebase]/users');
        $scope.h1 = 'responses:';
        fireRef.on('child_added', function(childSnapshot, prevChildKey) {
            console.log(childSnapshot.val());
            $scope.users = childSnapshot.val();
        });
    });

HTML:

{{h1}}
{{users}}

console.log显示

user1
user2
user3
....

{{h1}}正确渲染,但{{users}}不渲染任何东西。那么如何让每个人都显示在页面上?


问题答案:

Firebase异步加载和监视数据。只要有(新的或更新的)数据,就会触发您的回调函数。不幸的是,那时AngularJS通常不准备接受更改。这就是Firebase创建AngularFire的原因,当发生更改时,它会自动通知AngularJS。

您似乎部分使用了AngularFire,但没有使用此构造。我建议_始终_将AngularFire用于需要绑定到的数据,$scope _或者永远不要_使用AngularFire。选择是您的,但要保持一致。

使用AngularFire:

        var fireRef = new Firebase('https://[myfirebase]/users');
        $scope.h1 = 'responses:';
        $scope.users = $firebaseArray(fireRef);

不使用AngularFire:

        var fireRef = new Firebase('https://[myfirebase]/users');
        $scope.h1 = 'responses:';
        fireRef.on('value', function(childSnapshot, prevChildKey) {
          $timeout(function() {
            console.log(childSnapshot.val());
            $scope.users = childSnapshot.val();
          };
        });

$timeout结构告诉AngularFire您正在修改$scope

请注意,我们拥有的每一份AngularFire文档中都涉及到将数组绑定到作用域:AngularFire快速入门,AngularFire指南和AngularFire
API文档
。请阅读它们,它们包含许多其他有用的位。



 类似资料:
  • 我正在尝试使用Spring Security性和AngularJS设置默认SuccessUrl,但是成功登录后,html页面将加载到网络中,但没有显示。这是我的安全配置 但是,我仍然显示登录页面,而不是hello.jsp页面。登录的Angular服务: 有人知道为什么吗?

  • 问题内容: 呈现我的JSF页面时,我收到以下消息。该页面显示正确,但是在控制台中,以下消息重复多次。 11:54:27,090 INFO [STDOUT] 2009年11月24日11:54:27 AM com.web.util.faces.UtilFacesFuncs日志INFO:最有可能的是,您从NON- Faces(即Servlet)请求了Faces对象上下文。 在我的JSF中,我使用以下语言

  • 问题内容: 我的网页上有一个Google地图,上面有一个我自己建立的搜索窗格,可以随意显示和隐藏。它的覆盖范围可以说是说一面地图的200像素。问题是,当我调整地图大小时,或窗格重叠的区域未渲染,即由于某种原因地图未渲染。 在Box中,输入OMDB(这是机场的ICAO代码),然后按Enter。 结果显示出来,您会看到窗格。现在单击全屏链接,然后单击“机场”选项卡以使面板消失- 您现在看到地图的一部分

  • 我要求在JSF2.2页面上输入2个输入值。我们正在使用Primefaces控件。然后通过h:command按钮将这些值提交给托管bean方法。 然后,基于这些值,我想将同一JSF页面上的一个单独的输出字段设置为一个特定的值。 因此,我目前的问题是尝试连接一个托管bean,以便它将一个值返回到我的JSF页面上的字段,在本例中,字段名是mgrs。主要的问题是,我要处理的是生成返回值的第三方库,我不确定

  • 我正在使用PhantomJS进行网页截图。 我看到过其他关于@font-face问题的帖子,但我页面上的字体呈现正确。我唯一的问题是,每次截图时,字体显示与前一个截图略有不同。所以尽管他们的渲染是正确的,但他们在截图上的外观是不一致的。 我已经尝试了许多修复,大多数都是基于这样的假设,即这与页面准备好之前拍摄的截图有关,但这似乎不是问题所在。例如,我已经延迟了截图,以便字体有时间加载和呈现,但这并

  • 我使用spring boot并尝试加载图像到我的html页面。 文件的完整路径:file:///d:/dyplom%20project/src/main/resources/static/slove.png当我在浏览器中运行时,所有工作和图像都在上传。 而当我转到localhost-welcomepage时,我有它: 控制台错误: 这与路径错误