ng-repeat来自firebase的项目

时间:2016-05-09 03:01:03

标签: javascript angularjs firebase

我正试图通过firebase中的项目进行重复操作。我在控制台中有他们。但表达式不起作用。我不知道该怎么做,并尝试了一切。任何帮助都会很棒。感谢

此处控制台的图片:

enter image description here

//js
firebaseRef.once("value", function(snapshot) {
    $timeout(function(){
        $scope.boats = snapshot.val();
        console.log($scope.boats); //image of console up^
    }, function (errorObject) {
        console.log("The read failed: " + errorObject.code);
    },0);
});

//html
     <div class="row pad" ng-repeat="boat in boats">
        <span class='text-center' >{{boat.title}}</span>
     </div>

2 个答案:

答案 0 :(得分:3)

数据存储为boat.Title,但正在boat.title

进行访问

答案 1 :(得分:2)

@funador是正确的,您需要boat.Title而不是boat.title

但是,您应该考虑使用 AngularFire for Angular 1 来让您的生活更轻松。

AngularFire将集合与Firebase数据库和$digest循环同步。

angular.module('app', ['firebase'])
  .constant('FirebaseUrl', '<my-firebase-app>')
  .controller('MyCtrl', MyController)
  .config(function($firebaseRefProvider, FirebaseUrl) {
     $firebaseRefProvider.registerUrl({
       default: FirebaseUrl,
       boats: FirebaseUrl + '/boats'
     });
  });

function MyController($scope, $firebaseRef, $firebaseArray) {
  $scope.boats = $firebaseArray($firebaseRef.boats);
}

AngularFire允许您使用config$firebaseRefProvider阶段指定参考。然后,您就可以注入$firebaseRef服务了。

$firebaseArray会自动将更改同步到您的模板。要创建一个,请传入boats对数组的引用。

令人敬畏的是,不需要$timeout。 AngularFire为您处理它。

您的ng-repeat仍然相同:

<div class="row pad" ng-repeat="boat in boats">
  <span class='text-center' >{{boat.title}}</span>
</div>