0
私は、データを取得し、配列を構築するサービスFirebaseを持っています。私はangular.foreach
を実行し、値をテーブルに入れて、私はゼロをインスタンス化します。
しかし、それは私に空の配列を返します。
私はそれが私にオブジェクトの配列を返すことを望むマーカー。
これは私のサービスです。
(function() {
'use strict';
angular
.module('app.pages.cartographie')
.factory('DeviceService', DeviceService);
/* @ngInject */
function DeviceService($injector, $q) {
// inject another service
var ServiceUser = $injector.get('ServiceUser');
var userDatas = ServiceUser.getUserDatas();
console.log('info ' + userDatas.info);
var service = {
getMarkers: getMarkers
};
return service;
function getMarkers() {
// firebase Promise
userDatas.$loaded().then(function() {
var defer = $q.defer();
var devices = userDatas.ownDevices;
console.log('Device ' + devices);
var markers = [];
angular.forEach(devices, function (key) {
var devicesData = firebase.database().ref().child('device/' + key).once('value');
devicesData.then(function (data) {
var deviceObj = data.val();
markers.push({
lat: deviceObj.lat,
lng: deviceObj.lng
});
});
});
$q.all(markers).then(function() {
//
console.log('markers ' + JSON.stringify(markers));
});
return defer;
});
}
}})();
おかげ
感謝をあなたの助け。私は2つのソリューションを試しましたが、2つのケースでは、マーカーは確かです。 –
@YseultFran「マーカー」が未定義になることはありません。どのようにアクセスしようとしているのか教えてください。 – JLRishe
私のコントローラには、 'vm.markers = DeviceService.getMarkers();' –