【问题标题】:Firebase returning data with $value, $id and $priority AngularJsFirebase 使用 $value、$id 和 $priority AngularJs 返回数据
【发布时间】:2016-04-04 03:06:55
【问题描述】:

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

我在 Firebase 上导入的 Json 文件:

FireBase 数据表示:

以 HTML 格式返回的数据:

预期数据为

在我的控制器中,我试图从 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>

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

【问题讨论】:

标签: html angularjs json firebase


【解决方案1】:

AngularFire 从一系列 Firebase 数据快照创建一个同步数组。快照包含数据以及其他有用的数据,例如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);

【讨论】:

    猜你喜欢
    • 2016-08-27
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    相关资源
    最近更新 更多