Firebase使用$ value,$ id和$ priority AngularJs返回数据

时间:2015-12-30 06:54:24

标签: html angularjs json firebase

我正在尝试使用AngularJS从我的HTML中获取Firebase中的数据。它工作正常,但当我到达子节点时,它以意想不到的形式显示数据。 请查看图片了解详情:

我在Firebase上导入的Json文件:

  

My Json File

FireBase数据表示:

  

FireBase Data

以HTML格式返回的数据:

  

enter image description here

预期数据

  

enter image description here

在我的控制器中,我试图从FireBase获取数据:

$scope.locService = $rootScope.service;
  var serviceRef = new Firebase(FIREBASE_URL+"ABC/location/"+$rootScope.location+"/services/"+$rootScope.service+"/"+$rootScope.serviceDetail+"");
  $scope.details = $firebaseArray(serviceRef);

$ rootScope值正在返回数据(它不是预期的格式,即$ id,$ value,$ priority)。

在我的HTML中:

<div class="content has-header">
      <h2>{{details[0]}}</h2>
</div>

请帮帮我。提前感谢您的建议

1 个答案:

答案 0 :(得分:0)

AngularFire从一系列Firebase DataSnapshots创建一个同步数组。快照包含数据以及其他有用数据,例如keypriority。 AngularFire使用$前缀为数组中的每个项目包含此数据。

在你的情况下,你试图同步一系列基元,为了让AngularFire为你提供像key这样的重要信息,它在对象中包含基元,并允许你访问原始值通过$value属性。

Check out the AngularFire docs on meta fields for more information.

如果您不想要这种行为,那么您需要使用$firebaseObject()或在JSON树中升级一级。

在您的情况下,您可能想要使用$firebaseObject()

$scope.locService = $rootScope.service;
var serviceRef = new Firebase(FIREBASE_URL+"ABC/location/"+$rootScope.location+"/services/"+$rootScope.service+"/"+$rootScope.serviceDetail+"");
$scope.details = $firebaseObject(serviceRef);