如何对多个级别的$ firebaseArray输出进行ng-repeat?

时间:2016-11-06 17:28:22

标签: javascript angularjs firebase angularjs-ng-repeat firebase-realtime-database

我正在使用ans从Firebase收集数据。输出如下:

$firebaseArray

我的js如下:

[
  {
    "BankAccount": {
      "AccountHolder": "Tom Antony",
      "AccountNumber": "56767887"
    },    
    "Info": {
      "BillingAddress": {
        "City": "XYZ",
        "State": "ABC"
      },
      "FullName": "Tom Antony",
      "PhoneNumber": "634762347"
    },
    "$id": "dGUZX5SWi7aP0SNYLYqEiMdCYAS2",
    "$priority": null
  },

  {
    "Campaigns": {      
        "Settings": {
          "Active": true
        }
      }
    },
    "Info": {
      "BillingAddress": {
        "City": "ABC",
        "State": "DFG"
      },
      "FullName": "Mario",
      "PhoneNumber": "634762347"
    },
    "$id": "tBqGZ7g6VwNYOWoVy7C1FHKZKFS2",
    "$priority": null
  }
]

每个Array元素都有不同类型的对象,但每个对象都有一个名为 Info 的类似对象,其中包含 FullName 的字段我需要应用ng-repeat在这个FullName上。我的实现如下所示:

const rootRef = firebase.database().ref().child('Users');        
$scope.users = $firebaseArray(rootRef);

但它不起作用。我在这里犯了什么错误?

1 个答案:

答案 0 :(得分:1)

您正在尝试迭代错误的属性。您有两个对象(user),其中每个都有一个Info属性,您需要FullName。您没有两个Info个对象。因此,您应该迭代users,而不是迭代users.Info

请改为尝试:

<div ng-repeat="user in users">
  <p ng-bind="user.Info.FullName"></p>
</div>

此外,您在此处粘贴的对象不是有效的JSON,您还有一个额外的}

完整工作示例:http://plnkr.co/edit/ryfjhO0c3egHfKnaL9SQ?p=preview