HTML:
<ya-map ya-zoom="5" ya-center="[37.11,54.83]"> <ya-geo-object ya-source="geoObjects[0]" ya-options="{draggable:true,preset:'twirl#blueStretchyIcon',openEmptyBalloon: true}" ya-event-balloonopen="balloonOpen($event)"></ya-geo-object> </ya-map>
javascript
$scope.geoObjects=[ { // Геометрия = тип объекта + географические координаты объекта geometry: { // Тип геометрии - точка type: 'Point', // Координаты точки. coordinates: [37.72,55.8] }, // Свойства properties: { iconContent: "Узнать адрес", hintContent: "Перетащите метку и кликните, чтобы узнать адрес" } } ]; $scope.balloonOpen = function($event){ var obj = $event.get('target'); obj.properties.set('balloonContent', "Идет загрузка данных..."); // Имитация задержки при загрузке данных (для демонстрации примера). $timeout(function () { ymaps.geocode(obj.geometry.getCoordinates(), { results: 1 }).then( function (res) { var newContent = res.geoObjects.get(0) ? res.geoObjects.get(0).properties.get('name') : 'Не удалось определить адрес.'; // Задаем новое содержимое балуна в соответствующее свойство метки. obj.properties.set('balloonContent', newContent); }, function(err){ console.log(err); }); }, 1500 ); };