phonegap + AngularJS + Framework7 を使って電話アプリを開発しました。私の問題は、framework7 のスワップ ページから始まります。
Framework7 は、ユーザーがリンク ボタンを押すと、動的に新しい HTML ページを DOM に挿入します。したがって、角度付きで $compile と $apply() を使用して、注入された新しい html 部分を再コンパイルする必要があります。
しかし、ウィンドウの注釈を開くと、ロードとコンパイルが同時に行われます。私のコンパイルコードは次のとおりです。
//listiner for new page injection to DOM.
$$(document).on('pageInit', function (e) {
//on page init , compile the new DOM ijected.
$compile(angular.element(document.getElementsByClassName(e.detail.page.container.className)).contents())($scope);
$scope.$apply();
});
「beforeAnimation」というイベントもあります。アニメーションの前にすべてをコンパイルして、ローディングスピナーをユーザーに表示し、ページの準備ができたら、アニメーションを開始してページを表示したいと考えました。しかし、このソリューションを実装する方法がわかりません$compile
。$apply()
同期ですか? promise を使用して、新しいページのアニメーションが開始され、完了した後$compile
にのみ開始されるようにする必要がある場合$apply
。
あなたが別の解決策を考えているなら、私はそれを聞いてうれしいです.