古い jQuery コードがいくつかあります。これはコードの大きな塊なので、しばらくしてから移植したいと考えています。それを使用するには、 を呼び出します$('#legacyId').legacyFunction()
。
ただし、これが取引です。
私はng-ifを持っています。そして、その ng-if 内に、レガシー関数を呼び出す JavaScript があります。
<div ng-if="status=='yes'">
<div id="legacyId">
I am a legacy div!
</div>
<script type="text/javascript">
$('#legacyId').legacyFunction()
</script>
</div>
ページの読み込み時にこの JavaScript が呼び出されているようです。jQuery の後に angular をロードしますが、Angular は ng-if の制御下にあるセクションを削除するように見えるため、jQuery 関数は#legacyId
失敗します。
何か案は?ありがとう!
編集メモ: jQuery と、HTML ドキュメントの上部にある jQuery を拡張するレガシー コードをインポートします。Angular はドキュメントの下部にロードされます。
編集注 2 : も試し<div ng-init="$('#legacyId').legacyFunction()"></div>
ましたが、エラーが発生します。Error: [$rootScope:inprog] $apply already in progress.