【发布时间】:2015-08-04 22:25:24
【问题描述】:
我有一个工厂,它获取一组 ID,用于从 firebase 中提取数据。
1 个 ID 从 firebase 中提取 1 条数据
我想创建一个工厂,它返回一个解析 firebase 对象数组的承诺。
这是一个为一个数据点执行此操作的工厂示例(从How to use Firebase query in Angular factory? 的解决方案中检索)
// getLogo() returns a promise that you can bind to the UI.
// When loading finishes, the binding will get the opponent's logo value.
factory.getLogo = function (opponentName) {
var opponentsArray = $firebase(_ref.orderByChild('name').equalTo(opponentName)).$asArray();
// $loaded() returns a promise, so we can use the then() method to add
// functionality when the array finishes loading and the promise resolves.
var r = opponentsArray.$loaded().then(function () {
// Now return the logo for the first matching opponent
return opponentsArray[0].logo;
});
return r;
};
这是我尝试过的 -
return function(arrIds){
var obj;
var arr = [];
var ctr = 0;
var defer = $q.defer();
if (arrIds.constructor == Array){
for (var i = 0; i < invoiceId.length; i++){
obj = $firebaseObject(ref.child('invoices').child('company').child(arrIds[i]));
obj.$loaded().then(function(){
arr.push(obj);
if (ctr === arrIds.length){
ctr++;
defer.resolve(arr);
return defer.promise;
}
})
}
}
};
【问题讨论】:
-
首先想到的是,你尝试了什么,什么没用?
标签: javascript angularjs firebase