【发布时间】:2017-02-01 07:21:22
【问题描述】:
我有一组键,我想从 firebase 的其他对象列表中获取具有此键的对象。现在的样子。我将索引列表作为参数传递给服务中的方法,并通过循环获取每个对象并将其推送到数组,该数组在控制器中读取。但是,我觉得它看起来很丑。如何在没有 foreach 和之后调用 $apply() 的情况下一次从 firebase 获取所有对象?我简化了一点,但我认为想法很清楚。 谢谢
工厂
(function() {
angular.module("app").factory('app.factory', appFactory);
appFactory.$inject = ['$rootScope']
function appFactory($rootScope) {
self.loadList = function(list) {
self.ListingData = [];
angular.forEach(list, function(val, key) {
db.child('listings').child(key).once('value').then(function(product) {
var value = product.val();
$rootScope.$apply(function() {
self.ListingData.push(value);
});
}).catch(function(error) {
console.log(error);
});
});
};
return self;
}
})();
控制器
(function() {
angular.module("app").controller('app.Ctrl', appCtrl);
appCtrl.$inject = ['app.factory', '$scope'];
function listingsCtrl(appFactory, $scope) {
$scope.loadListing = function(list) {
listingsFactory.loadList(list);
$scope.list = listingsFactory.ListingData;
}
// load list by default
$scope.loadListing(list);
}
})();
【问题讨论】:
-
可能会看看 angularFire 以使其更容易
标签: angularjs firebase firebase-realtime-database