Angular 6 и Yandex Map API

126
08 сентября 2019, 22:30

хочу в темплейте у балуна карты вызвать (click)="open()" но метод open не вызывается. В чем причина?

             balloonContentLayout = ymaps.templateLayoutFactory.createClass('<div><button class="btn btn-danger" data-toggle="modal" data-target="exampleModal" onclick="this.open();">Click</button></div>'
  open() {
    console.log('test2');
  }
Answer 1
  1. вам нужно назначить mainClass.

    var mainClass = this;

  2. не выполняется потому что необходимо прописать : onclick="function(){mainClass.open();};"

  3. выполнять создание блока в строку не рекомендуется. вот небольшой пример как это надо делать:

        var mainClass = this;
        if (!$('#modal-overlay').length) {
            var overlay = $('<div>', {id: 'modal-overlay'});
            overlay.addClass('modal-overlay');
            overlay.addClass('closed');
            overlay.click(function() {mainClass.save();});
            $('body').append(overlay);
        }
    

    Это кусок из моего кода. Думаю вы сможете разобраться как нужно строить блоки.

READ ALSO
Скрипт генерация случайных фраз

Скрипт генерация случайных фраз

Генерация случайных слов, с задержкой по времени, где фраза "НА САЙТЕ ТОЛЬКО" видна изначально, а после счетчика рондомно показывается одна...

127
Загрузка в расширении хром

Загрузка в расширении хром

Как в расширении хром скачивать файлы, и если возможно самому формировать файл который скачает пользователь?

127
Новостная лента (JS CSS HTML)

Новостная лента (JS CSS HTML)

Не так давно перешел на веб программирование с десктопа

98
Как работает клиентское кэширование?

Как работает клиентское кэширование?

Есть определённый AJAX-запрос, который клиенты могут выполнять к серверу любое количество разХочу это исправить и снять немного нагрузку с сервера...

134