ng-click不适用于fotorama插件

时间:2015-06-15 13:06:48

标签: angularjs angularjs-ng-click fotorama

我正在使用带有AngularJS的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并不知道这些变化。我发现的唯一解决方法是直接从非Angular代码使用$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集成?

1 个答案:

答案 0 :(得分:0)

有一个用于角度https://github.com/tamtakoe/ap.fotorama

的fotorama模块