Я использую листовку AngularJS для поиска местоположения и получения координат широты и долготы. В моем сервисе я вызываю свой код для отображения карты в сервисе, я написал обратный вызов, который принимает (широта, долгота) и делает HTTP-запросы к URL-адресу для получения данных, связанных с этими координатами.
В идеале я хотел бы создать функцию, которая возвращает http-запрос и возвращает обещание в контроллере. Проблема в том, что getMarkets является обратным вызовом, и я не могу вызвать функцию .then напрямую, потому что ей нужно сначала передать координаты. Он возвращает данные, и я хотел бы знать, как передать данные, которые я получаю от ($ http (options)) в контроллер, чтобы я мог отображать ответ в представлении.
app.service('mapService', (function($http) {
var fmCoordinates = {};
var requestMarkets = function(lat,lng){
var options = {
type: "GET",
contentType: "application/json; charset=utf-8",
url: "http://somerul?lat=" + lat + "&lng=" + lng
};
return console.log($http(options));
};
L.Control.Search = L.Control.extend({
//Leaflet Code
_getLocation: function(key) { //extract latlng from _recordsCache
var latLong = this._recordsCache[key];
fmCoordinates.lat = latLong.lat;
fmCoordinates.lng = latLong.lng;
requestMarkets(fmCoordinates.lat,fmCoordinates.lng);
if( this._recordsCache.hasOwnProperty(key) )
return latLong;//then after use .loc attribute
else
return false;
},
})