2017-01-14 13 views
0

FirebaseのデータをHTMLページに照会する方法に関する提案があります。FirebaseからAngularJSにデータを照会する方法

コントローラあなたがangularfireを使用しているので、あなたはこのようにそれを行うことができます

<div ng-controller="cloudCtrl"> 
    <button ng-click="Load()">Load User</button> 
    </div> 
+0

あなたはアングラーファイアを使用していますか? $ firebaseArrayインジェクションは、そのことを示していますが、確かにそうです! – YannickHelmut

+0

はい私は答えを助けたら、 –

+0

Firebaseからの質問に問題があるので助けになるために、すべての提案を使用しています。正しいものとしてマークしてください。 – YannickHelmut

答えて

0

.controller('cloudCtrl', ['$scope', '$stateParams', '$firebaseArray' ,// $stateParams.parameterName 
function ($scope, $stateParams, $firebaseArray) { 
var ref2 = firebase.database().ref().child("info"); 
var sync = $firebaseArray(ref2); 
console.log(sync.toString()); 

sync.orderBychild('name').endAt(3).on('child_added', function(snap){ 
    console.log('added', snap.val()) 
}) 

}]) 

HTML5ファイル:

$scope.load = function() { 
    $scope.result = firebase.database().ref().child("info").orderByChild('name').endAt(3); 
} 

orderByChildにキャメルケースについては注意してください。

子が追加されたときにイベントが発生するようにするには、データを監視する必要があります。たとえば、新しいメッセージが利用可能になったときに通知を送信します。それ以外の場合、データベースはリアルタイムで動作します。したがって、info内の名前(firebaseコンソールに直接)を変更すると、スコープ内で利用可能になり、更新されます。

アプリを準備している間に便利になる可能性があるこれを行うための一つの他の方法があります:

$firebaseArray(yourRef).$loaded().then(function(result) { 
    $scope.result = result; 
}) 

あなたがデータをフェッチしている間、これは約束を処理します。これは、その関数の前に表示するデータをフェッチしている間にローダーを表示し、それが完了したら非表示にしたい場合に便利です。

希望すると助かります!

関連する問題