【问题标题】:Retrieving data from Firebase and repeating it in an Angular Controller从 Firebase 检索数据并在 Angular 控制器中重复数据
【发布时间】:2016-08-04 10:09:16
【问题描述】:

因为我是 Firebase 新 SDK 的新手(我使用了一点 angularfire),所以我想检索数据并使用 angular 来显示它。

这是我到目前为止所做的:

var app = angular.module('dApp',[]);
app.controller('listingControler',['$scope', function($scope){
$scope.downloads = [];


var config = {
    //removed config
 };

  firebase.initializeApp(config);


    var leadsRef = database.ref('/');
    leadsRef.on('value', function(snapshot) {


        snapshot.forEach(function(childSnapshot) {
        $scope.downloads.push(childSnapshot.val());



        });
        return  $scope.downloads;
    }); 

  }]);

查看

<body ng-app="dApp">
 <div ng-controller="listingControler">

<ul>
        <li ng-repeat="d in downloads">{{d.email}}</li>
</ul>
</body>

【问题讨论】:

  • 上面的代码有什么问题?您能提供您遇到的任何错误吗?
  • 在返回语句之前查看它打印的内容 console.log($scope.downloads)。如果它是数组,它将与 ng-repeat 一起使用
  • @MohsinPatel 抱歉,我忘记添加了。当我控制台记录它时,它显示 [],但是当我打开它时,我可以看到对象和其中的数据。
  • 这是因为异步执行。 snapshot.forEach(function(childSnapshot) { console.log(childSnapshot.email); $scope.downloads.push(childSnapshot.val()); });如果它打印您想要的内容,它将仅使用 ng-repeat 进行迭代。
  • 这里没有AngularFire

标签: javascript angularjs firebase firebase-realtime-database


【解决方案1】:

基于您正在获取数据的 cmets(您说控制台允许您查看对象属性)。您需要指定属性名称来获取字符串数据。以snapshot.val().firstName 为例。

【讨论】:

    猜你喜欢
    • 2022-08-11
    • 2019-08-20
    • 1970-01-01
    • 2020-08-16
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 2015-08-19
    相关资源
    最近更新 更多