【发布时间】:2016-01-07 07:28:42
【问题描述】:
我正在尝试查询特定歌曲在 firebase 中记录了多少条目。换句话说,我正在尝试获取歌曲的总播放次数并将它们绘制在图表上。
我试图获取 firebase 数组的长度,但我知道我必须使用 $loaded.then(function())。我将如何在这里使用它?我的控制器:
(function () {
function MetricsCtrl($scope,$firebaseArray, Metric) {
var firebaseRef = new Firebase("https://bloc-jams.firebaseio.com/");
$scope.options = {...};
var blue = $firebaseArray(firebaseRef.child('Songs').orderByChild('name').equalTo("Blue"))
var green = $firebaseArray(firebaseRef.child('Songs').orderByChild('name').equalTo("Green"))
var red = $firebaseArray(firebaseRef.child('Songs').orderByChild('name').equalTo("Red"))
var pink = $firebaseArray(firebaseRef.child('Songs').orderByChild('name').equalTo("Pink"))
var magenta = $firebaseArray(firebaseRef.child('Songs').orderByChild('name').equalTo("Magenta"))
$scope.data = [
{
values: [
{
"label" : "Blue" ,
"value" : blue.length
} ,
{
"label" : "Green" ,
"value" : green.length
} ,
{
"label" : "Red" ,
"value" : red.length
} ,
{
"label" : "Pink" ,
"value" : pink.length
} ,
{
"label" : "Magenta" ,
"value" : magenta.length
}
]
}
]
}
angular
.module('blocJams')
.controller('MetricsCtrl', ['$scope','$firebaseArray','Metric', MetricsCtrl]);
})();
【问题讨论】:
-
你有什么理由单独查询这些,作为一个数组?看起来
$firebaseObject(firebaseRef.child('Songs'))会更直接。此外,为了可扩展性,您可能希望提前单独编译统计信息,以便获取歌曲数量实际上不需要加载数据库中的每首歌曲。努力写入以使读取更容易。
标签: javascript d3.js firebase nvd3.js angularfire