ここで奇妙なことが起こっています。
次のディレクティブを取得しました。
app.directive('addscroller', function () {
return function (scope, elm, attrs) {
// jQuery Script triggern
// AngularJS: jQuery(selector) = element.
elm.ready(function () {
elm.nanoScroller({ alwaysVisible: true });
})
}
});
私はそれをこのコードに追加しています:
<div ng-show="datenschutz" class="alldealermodal">
<p ng-show="loading">Loading...</p>
<div>
<h1 class="headline">DATENSCHUTZ</h1>
<div class="closebtndiv"><a href="#" ng-click="datenschutz=false" class="closebutton">Close</a></div>
<div class="clear"></div>
<div class="nano" addscroller>
<div class="content"><p>BIG LONG TEXT</p></div>
</div>
</div>
<div class="fadeout"></div>
</div>
このリンクをクリックすると、
<p><a href="#" ng-click="datenschutz=!datenschutz" class="datenschutz">Datenschutz</a></p>
上記のようにオーバーレイ「datenschutz」を開きます (ng-show="datenschutz")。トグルはうまく機能しますが....
ページが表示された後に div を直接開くと、スクローラーが読み込まれて正常に表示されます。できます。
しかし、ほんの数秒待ってから「datenschutz」オーバーレイを開くと、スクローラーはロードされず、まったくロードされません。
私は 2 番目のオーバーレイに似たようなものを持っていますが、これも起こります。
編集/更新:
問題は、jQueryが非表示の要素にスクリプトを適用できないことであることがわかりました。ng-repeat (div 内) の $last 要素が読み込まれる前に div をすばやく開くと、div が表示されるため機能します。
誰かがその回避策を知っていますか?