2016-04-25 8 views
0

私はフォーラムを構築していますが、私はビューのステップにいます。私はこの(簡略化された)コードを持っています:push idを一意に取得する方法

あなたが見ることができるようにビューを追加することはかなり簡単でした。そして私は正しくそれをやった。問題は、ビューの数を表示している、と私はAngularFireの$firebaseObject、または$firebaseArrayを使用してそれをしなければならない...ここでは、データベースの構造です:

{ 
    "Topics" : { 
    "-KG9rDNLZksJDiLfAXwH" : { 
     "Avatar" : "http://cs624223.vk.me/v624223037/2b1bb/GRTKddkmXiw.jpg", 
     "DateCreated" : 1461544873669, 
     "Email" : "[email protected]", 
     "Title" : "Check", 
     "UID" : "3caf2136-7a2d-4ae4-a4a9-119f2b08133c", 
     "Username" : "BruhBrhu", 
     "Value" : "Check", 
     "Views" : { 
     "3caf2136-7a2d-4ae4-a4a9-119f2b08133c" : { 
      "Views" : true 
     } 
     }, 
     "pushKey" : "-KG9rDNLZksJDiLfAXwH" 
    } 
    }, 
    "UserAuthInfo" : { 
    "3caf2136-7a2d-4ae4-a4a9-119f2b08133c" : { 
     "BronzeBadge" : 0, 
     "Description" : "Just a wierd 15 year old coder...", 
     "Email" : "[email protected]", 
     "GoldBadge" : 0, 
     "Image" : "http://cs624223.vk.me/v624223037/2b1bb/GRTKddkmXiw.jpg", 
     "Moderator" : false, 
     "Password" : "KfUcQ1yedOi1gEnGP6i1KQ==", 
     "PlatinumBadge" : 0, 
     "SilverBadge" : 0, 
     "UID" : "3caf2136-7a2d-4ae4-a4a9-119f2b08133c", 
     "Username" : "BruhBrhu" 
    } 
    } 
} 

あなたが得るために、私はpush()を使用見ることができるように私の心配は今話題を見る方法です!助けてください!私はそれを行うために "アルゴリズム"を考えることができません!

あなたの話題はすべてユニークなIDです。特定のIDを取得する必要があります。ユーザーが入っています

+0

あなたの質問にJSONツリーの画像が含まれています。 Firebaseデータベースの[Export]ボタンをクリックすると、実際のJSONをテキストとして置き換えてください。 JSONをテキストとして検索可能にすることで、実際のデータを使ってテストしたり、答えに使用したりすることができます。一般的には、これは良いことです。 –

+0

誰でもanwserできますか?またはこれは不可能な仕事です@FrankvanPuffelen? – amanuel2

答えて

1

私:

refService.ref().child("Topics").once("value", function(snapshot) { 
        snapshot.forEach(function(childSnapshot) { 
         var key = childSnapshot.key(); 
         var childData = childSnapshot.val(); 
         if(childData.DateCreated == $stateParams.DATE && childData.Email == $stateParams.EMAIL){ 
          refService.ref().child("Topics").child(childData.pushKey).child("Views").on("value", function(snapshot){ 
           console.log(snapshot.numChildren()) 
           $scope.countViews = snapshot.numChildren(); 
          }) 
         } 
        }) 
       }) 

どういうわけか$ scope.countViewsは、私のHTMLに3つの方法でバインドされたので、実際にはわかります!

0

Firebase documentation explicitly recommends againstというオブジェクト内にキーを入れ子にしています。

しかし、あなたはまた、スコープにメソッドを追加することができますことを実現したらそれが動作することができます:

var app = angular.module('app', ['firebase']); 

app.constant('FB_URL', 'https://yours.firebaseio.com/'); 
app.controller('MainCtrl', function(FB_URL, $scope, $firebaseArray, $firebaseObject) { 
    var ref = new Firebase(FB_URL); 
    $scope.topics = $firebaseArray(ref.child('Topics')); 
    $scope.getCount = function(obj) { 
    return Object.keys(obj).length; 
    }; 
}); 

とビュー:

<body ng-controller='MainCtrl'> 
    <ol><li ng-repeat='topic in topics'>{{topic.Title}} - {{topic.Username}} - {{getCount(topic.Views)}}</li></ol> 
</body> 

ワーキングjsbin:これは、のために働いhttp://jsbin.com/dapoga/edit?html,js,output

関連する問題