2013-04-09 11 views
12

私のアプリは、初期化時に外部ソースから一部のデータを$rootScopeにロードする必要があります。データは外部ソースからのものなので、データのロードに必要な時間は保証されません。私は、データが正常に読み込まれた後でなければ、ビューのレンダリングを延期したい。これを達成する方法はありますか?一部のデータが外部ソースから読み込まれるまでビューのレンダリングを延期するにはどうすればよいですか?

このアプリケーションでは角度ルーティングを使用していません。ここで

は、非同期操作が経路解決さを使用せずに完了しますが、あなたが同じ仕事をするために、カスタムディレクティブをプログラムすることができるまで、レンダリングからの眺めを防ぐために、きれいな方法がありませんsimplified demo

+0

なぜ '$ http'を使用していませんか?私たちは答えにもっと情報が必要です。 –

+0

@ JoshDavidMiller - 私は$ httpを使用しています。提供されているサンプルコードの中に$ httpを$ timeoutと置き換えたので、長い遅延をエミュレートすることができ、遅延バインディング効果を示すことができます。他の情報を探していることを教えてください。あなたの質問に私を打つ。ありがとう。 – tamakisquare

+0

また、 'ng-show'と' ng-show'を使って望みの結果を得ることもできます。 – callmekatootie

答えて

13

です。

これは、ユーザーエクスペリエンスのために厳密である場合は、その後、ngShowを使用してswimmingly動作します:

<div ng-show="user.name"> 
    <!-- content won't be visible until data is set --> 
</div> 

がここに更新Plunkerです:私にとってhttp://plnkr.co/edit/MXoQNWHvyp9aOXg0QOoC?p=preview

+0

これを更新してngCloakがこの種の問題を解決したとします:https://docs.angularjs.org/api/ng/directive/ngCloak ngShowが必要です – DAG

+2

@ DanielGroh初期ページの読み込みにはうまくいくかもしれませんが、ページ読み込みの間に*動作するとは思いません。 –

+0

あなたは正しいです。これを指摘してくれてありがとう – DAG

0

、それは単にUIの問題ではありませんでしたフリッカー。データはレンダリング前にロードされていなかったので、私のブートストラップセレクトは関連するデータ値を選択していませんでした。私もしました:

<div class='bootstrap-select-dropdown-wrapper' ng-if='listofthings.length > 0'>...</div> 

うまくいけば、これは、同様の問題(ノートで立ち往生誰かを助けます:ドロップダウンを包む容器に選択する「場合はNG-」私は以下のように、配置することによって、問題を解決することができました私のプロジェクトにnya-bootstrap-selectモジュールを組み込みました。-bower install nya-bootstrap-select)

関連する問題