2015-12-30 8 views
5

AngularJSを使用してHTMLでFirebaseからデータを取得しようとしています。それは正常に動作していますが、私は子ノードに到達すると予期しない形でデータを表示しています。 詳細については、画像を検索してください:私はFirebaseにインポートした

JSONファイル:

My Json File

FireBaseデータ表現:

FireBase Data

HTMLにおける

返されるデータ:

:私のようにFireBaseからデータを取得しようとしています私のコントローラで

enter image description here

などのデータを期待

enter image description here

$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

これらの予期しない属性については、ドキュメントに記載されています。したがって、実際には期待されています。https://www.firebase.com/docs/web/libraries/angular/guide/synchronized-arrays.html –

答えて

0

AngularFireは一連のFirebase DataSnapshotsから同期配列を作成します。スナップショットには、データだけでなく、keypriorityなどの他の有用なデータも含まれています。 AngularFireは、$接頭辞を使用して、アレイ内の各項目にこのデータを含める。

AngularFireがkeyのような重要な情報を与えるために一連のプリミティブを同期しようとしている場合は、オブジェクトにプリミティブが含まれ、$valueを介してプリミティブ値にアクセスできますプロパティ。この動作を望まない場合は

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

、あなたは$firebaseObject()を使用するか、またはJSONツリーで1つ上のレベルに行くためにいずれかの必要があります。

場合によっては$firebaseObject()を使用します。

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