Клуб API Карт

Как получить в шаблоне Балуна кластера - геообъект и кликнуть его?

zalex@zalex.com.ua
15 марта 2016, 18:14

Бьюсь уж целый день не могу сообразить. У меня есть макет балуна 

var customBalloonContentLayout = ymaps.templateLayoutFactory.createClass([
    '<ul class=list>',
    '{% for geoObject in properties.geoObjects %}',
    '<li><a href="#"class="list_item">{{ geoObject.properties.balloonContentHeader|raw }}</a></li>',
    '{% endfor %}',
    '</ul>'
].join(''));

Мне нужно по нажатию на ссылку выбрасывать событие fire('click') у геообъектов. Пытался попросту onclick="{{ geoObject.events.fire(\'click\') }}" - не работает. Ну скорее понятно почему не работает в таком виде. Как то сделать

onclick="function(e){ {{ geoObject.evens.fire('\click\'}} }" тоже не выходит и впринципе вероятно тоже из за шаблонизатора.

Хорошо, думаю я, попытаюсь попробовать через переопределение функций build  и  clear

 Пишу

build: function() {
    customBalloonContentLayout.superclass.build.call(this);
    $('.list_item').on('click', function(e) {
        e.preventDefault();
       //И вот как же мне тут получить нужный объект??
    });
},......

Я предполагаю что ни как или это попросту не правильный путь. 

Попытался еще как то повесить внутри метода createClass функцию внешнюю и в нее передать geoObject (через тот же onclick), но не видит он фукнкцию эту (предполагаю что связано это с особенностями компиляции, хотя в твиге вероятнее всего всё бы заработало).

Помогите, подскажите. Задача ведь явно простецкая, но не хватает понималки как заставить кликнуть нужные объекты через ссылки в балуне. Спасибо!

3 комментария
Подписаться на комментарии к посту
http://jsfiddle.net/ahgnv5co/5/
zalex@zalex.com.ua
16 марта 2016, 12:10
Увы, это не то что мне нужно. В примере мы забираем placemark с помощью jquery и через дополнительно вводимый параметр placemarkId , к тому же формирования массива из геообъектов у меня нет. Мы ведь как то получаем в {{ properties.geoObjects }} нужные нам объекты, значит по идее мы можем получить их и из других мест. Использование jquery очевидно обходной путь, да и как быть если jquery не используется ?
zalex@zalex.com.ua,
Вы спросили как получить ссылку на плейсмарки из методов макета и это есть в примере. Не нужен jQuery – не используйте, хотя в примере вашего метода build он используется.

Синтаксис макетов конечно не поддерживает то, что вы хотите. Зачем вам нужно эмулировать клик на метке? выглядит как костыль