2015-06-15 3 views
0

Я использую плагин Fotorama с AngularJS. Если я устанавливаю директиву ng-click внутри разметки Fotorama, она не вызывает обработчик. Вот мой пример разметки:ng-click не работает с плагином fotorama

<div class="fotorama" data-click="false"> 
    <div onclick="myJsHandler()"> 
     <img src="/images/2.png"/> 
    </div> 
    <div ng-click="myNgHandler()"> 
     <img src="/images/1.png"/> 
    </div> 
</div> 

Первый обработчик (не угловая) работает нормально, но второй не делает. Похоже, причина в том, что Fotorama восстанавливает DOM, и AngularJS не знает об этих изменениях. Единственный способ решения проблемы я нашел требуется использовать $compile службы непосредственно из не Углового кода:

$(function(){ 
    $(".fotorama").each(function() { 
     var content = $(this); 
     angular.element(document).injector().invoke(function($compile) { 
      var scope = angular.element(content).scope(); 
      $compile(content)(scope); 
     }); 
    }); 
}); 

Есть ли лучший способ интегрировать Fotorama с AngularJS?

ответ

0

Существует модуль fotorama для углового https://github.com/tamtakoe/ap.fotorama

+0

Я пытался использовать его, но, кажется, что он не поддерживает пользовательскую разметку для галереи элементов. – Random

Смежные вопросы