2016-10-04 12 views
1

私は、AngularJsとのダイアログを開くためにAnuglar UI Bootstrap Modalを使用しています。初めてモーダルが開くときにパフォーマンスが低下しています。ダイアログが表示されると、ページ上に隠された要素のいくつかが顕著に吃音して点滅します。モーダルがダイアログを開く次のすべての時間は、吃音なく円滑に表示されます。プレレンダリング角度UIモーダル

これは、ビューをコンパイルする際の1回限りの計算上のオーバーヘッドが原因であると想定します。私のアプリのバックグラウンドでモーダルをあらかじめコンパイルする方法はありますか?ユーザーがダイアログを開いたときに、その準備が整うようにします。

は、私はそう

$uibModal.open({ 
    templateUrl:'my-modal.html', 
    controller:'MyModalCtrl' 
}); 

私はディレクティブのために、このような何かをしようとしたように角度UIモーダルサービスを使用していますが、私は、コントローラ/ダイアログのために働く何かを必要としています。

var directive = $compile("<my-directive></my-directive>"); 
var instance = directive(scope.$new(true)); 

私はこの問題は、すべてのブラウザで、デスクトップやモバイル上に示しているが、低電力のハードウェア(携帯電話、タブレット)のそれ最も顕著

を1.5.8角度と角度-UI-ブートストラップ1.3 を使用しています

https://embed.plnkr.co/hDM6GrUh8droo988MOox/

+0

この問題は一度もありませんでした。Googleマップのようなものでも、広範囲にモダンを使用しています。問題 – charlietfl

+0

を再現するデモを作成してください。私は別のアプローチを使用します:クラスモーダルでdivを作成し、divにはを使用してテンプレートをすぐにインクルードします。 –

答えて

2

解決を使用して、モーダルが開かれる前にデータが準備されていることを確認します。

次はドキュメントの例です。

さらに、モーダルについては{{}}から離れてください(使用している場合)。代わりにng-bindを使用してください。

+0

フォームで使用されているデータがあらかじめロードされているため、問題がないようです。ビューを開くと、データはロードされません。問題は、ビューのレンダリングにあるようです。モーダルが初めて開かれたときにのみ発生します。他のすべての時間はスムーズに開きます。 –

+0

私が限られた情報しか持っていなかったので、私は仮定をしていました。 @charlietflが述べたように、問題を再現するデモを作成できますか? – defaultcheckbox

+0

ここに私の基本的な状況です。これは劇的に効果は示されませんが、その後の呼び出しと比べてモーダルが少し遅く開きます。これはハードウェアに依存しているようです。より速いCPU/GPUで表示されない場合があります。 iPhoneでは効果がより顕著に現れます。 https://embed.plnkr.co/hDM6GrUh8droo988MOox/ –

関連する問題