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>
最初のハンドラー (非角度) は正常に機能しますが、2 番目のハンドラーは機能しません。その理由は、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 と統合するためのより良い方法はありますか?