我正在使用带有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集成?