Firebase 绑定未反映在角度视图中

2023-12-09

我从 Firebase 中的每个对象 picUrl(图片的 url)中提取一个值,并将其存储在作用域数组变量 $scope.bricks 中。如何使 $scope.bricks 每次使用新对象更新 Firebase 时更新,从而更新新的 picUrl?提前致谢!

angular.module('noorApp').controller('MainCtrl', function ($scope, $http, $firebase) {
    var sync = $firebase(ref);
    var firebaseObj = sync.$asObject();
    $scope.bricks = [];

    firebaseObj.$loaded().then(function(){
        angular.forEach(firebaseObj.products, function(value, key){
            $scope.bricks.push({src: value.picUrl});
        });
    });
});

EDIT:

我应该发布我如何在 DOM 中使用 $scope.bricks 。

<div class="masonry-brick" ng-repeat="brick in bricks">
  <img ng-src="{{ brick.src }}">
</div>

问题是,虽然 firebaseObj 与 Firebase 同步,但 $loaded() 仅运行一次。
谢谢。


正如我在评论中所说,您可能可以通过以下方式使其正常工作:

    firebaseObj.$loaded().then(function(){
        angular.forEach(firebaseObj.products, function(value, key){
            $scope.bricks.push({src: value.picUrl});
            $scopy.$apply();
        });
    });

更新:以上不起作用,请参阅下面OP的评论。

要了解更多信息$scope.$apply阅读这篇文章:http://jimhoskins.com/2012/12/17/angularjs-and-apply.html

但即使这可能会解决您当前的问题,但稍后您还会遇到其他问题。原因是您正在创建一个“非托管数组”。 AngularFire 有相当多的代码来确保 Firebase 的订单集合和 AngularJS 的双向数据绑定数组能够很好地协同工作。

因此,如果您为一系列产品设置单独的同步可能会更好:

angular.module('noorApp').controller('MainCtrl', function ($scope, $http, $firebase) {
    var sync = $firebase(ref);
    var firebaseObj = sync.$asObject();
    $scope.bricks = $firebase(ref.child('products')).$asArray();    
});

通过此设置,AngularFire 将调用$apply()当数组项最初加载或之后修改时自动执行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firebase 绑定未反映在角度视图中 的相关文章

  • 将变量从 jade 传递到 ng-init 不起作用

    我正在尝试以角度将对象从玉传递到 ng init 这 不起作用 ng init tables JSON stringify tables 这 扩展但是 ng init tables JSON stringify tables 输出未转义并填
  • 从 CardView Click 上的 FireBase 数据库检索节点 ID

    我有一个在 Android 上使用的 firebase 数据库 为了从 Firebase 检索和显示数据 我使用 FirebaseRecyclerAdapter 并将结果显示到 CardView 现在我正在将所需表中的所有列表获取到 Car
  • AngularJS 与(Angular JS + jQuery)

    我有一个关于仅使用 AngularJS 和纯 JavaScript 以及使用 AngularJS 和 jQuery 时的性能问题 ex app directive fitHeight function window return restr
  • Angularjs 路由:无法读取未定义的属性“路径”

    我试图在控制器中的函数内部触发 angularJS 路由 但它返回 未捕获的类型错误 无法读取未定义的属性 路径 实在看不出我在哪里错过了 location 注入 猜猜这就是原因 var gameApp angular module gam
  • 如何获取firebase数据库中所有孩子的数据?

    我有这个 firebase 数据库 我需要获取用户的所有电话号码 我应该使用哪个侦听器来获取所有孩子 每个用户都作为一个对象添加 其中用户 ID 作为该对象的名称 我需要在不知道用户 ID 的情况下检索该对象 我搜索了文档 它与DataSn
  • Firebase 查询 - 查找包含字符串的子项

    我在使用 Firebase 查询时遇到了一些问题 我想查询对象 其中对象子值包含特定字符串 到目前为止 我有一些看起来像这样的东西 Firebase ref Firebase alloc initWithUrl https dinosaur
  • 身份验证后如何退出 Google

    所以我的应用程序可以选择使用 Google 登录 单击 Google 提供的按钮后 将打开一个 Web 视图并让用户输入其凭据 允许应用程序访问其信息后 应用程序将用户登录并将 SignInViewController 更改为 TabBar
  • EJS.JS ReferenceError:标题未定义

    我遇到了 Express 脚本的问题 我正在调用一个在另一个函数成功时呈现视图的函数 在这个项目中 我使用 Angular Node Express 和 ejs 作为视图引擎 当我渲染视图时 不幸的是我收到以下 ejs 错误 Referen
  • 检查用户是否已从 Node.js(云功能)登录 Firebase Auth

    我正在尝试在 Node js 上创建 Express 动态网页 我想在路径上的服务器 Firebase Cloud Functions 上执行以下逻辑 如果客户端已登录 Firebase Auth 则呈现主页my home page htm
  • 容器中的等间距 div

    这是我的例子 http jsfiddle net rtCP3 62 http jsfiddle net rtCP3 62 我有 3 个 或更多 div 我想在一个容器中均匀分布 当将 Angular 与 ng repeat 一起使用时 样式
  • RecyclerView 来自 Firebase 的部分和数据

    您好 我正在开发一个应用程序 在其中我必须使用 Firebase 填充数据回收器视图 准备就绪 现在我想做的是用 data firebase 填写一个 recyclerview 但有一些部分将成为托管 data firebase 的父级 我
  • $digest 之后推迟 angularjs 监视执行(引发 DOM 事件)

    我有一个触发 DOM 事件的手表 scope watch function return controller selected function selected if selected input trigger focus 问题是我有
  • ng-show 令人不安的 div 布局 - angularJS

    我在用ng show notesOpened 如果notesOpened 变量为true 则隐藏div 然而 当隐藏时 它会扰乱布局 有没有办法让 ng show 的行为与 css 属性相同visibility hidden 以便被隐藏的
  • 当我的 Android 应用程序位于前台时,我想隐藏其他应用程序的所有通知。这可能吗?如何?

    我正在创建一个教育应用程序 学生可以在其中参加 5 分钟的快速考试 大多数时候他们使用父母的手机 现在我想要的是 当学生参加考试时 任何其他应用程序 例如 WhatsApp FB 或 Gmail 不应发出任何通知 这可能吗 如何 一种可能的
  • 将 Admob 链接到 Firebase

    我在 firebase 中创建了一个项目 我还在 Admob 中添加了一个带有两个横幅广告的应用程序 当我尝试将此应用程序链接到 Firebase 项目时 它总是给出以下错误 无法将应用程序链接到 Firebase 请刷新页面并重试 我尝试
  • 从外部javascript正确访问django静态文件

    我有一个使用 AngularJS 的 django 应用程序以及一堆 JavaScript 和模板文件 在我的 django 模板中我可以使用 static 标签来正确引用这些文件 如下所示 myapp app js gt 然而 外部文件本
  • 如何处理 Protractor 中的模态对话框?

    我正在尝试使用sendKeys 在模态对话框上this http www gifteng com login网站 单击后出现此对话框Sign In按钮 我似乎找不到任何方法将焦点切换到盒子上 请参阅gist https gist githu
  • 自定义过滤器在 Angular Hybrid 应用程序中不起作用

    我正在尝试将 AngularJS 1 6 应用程序与 Angular 5 一起转换为混合应用程序 我定义了以下简单过滤器 function use strict var filterId colorPicker angular module
  • 将 Cordova console.log 写入文件

    有谁知道是否有可能console log写入文件或类似的东西 我已经记录了我的应用程序 但它仅写在控制台上 出于远程目的debugging我也需要将现有日志写入文件 我想创建一个文件并将日志写入该文件中 但这将使我复制现有的日志代码 因此
  • 如何以编程方式在 Android 中的特定 firebase FCM 注册令牌上发送推送通知

    我想知道有什么方法可以在特定的 FCM 注册令牌 设备令牌 上以编程方式发送推送通知 我已经实现了群聊 但陷入了一对一的聊天 我根本不想使用任何网络服务或任何后端 因为我在我的应用程序中使用 Firebase 数据库和存储作为后端 我想将上

随机推荐