0

我正在使用带有 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 不知道这些变化。我发现的唯一解决方法需要$compile直接从非 Angular 代码中使用服务:

$(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 集成?

4

1 回答 1

0

有一个角度的 fotorama 模块https://github.com/tamtakoe/ap.fotorama

于 2015-06-15T13:08:29.043 回答