2

約 1300 の json オブジェクトを返す ajax リクエストがあります。このオブジェクトから、いくつかの ArrayProxies とビューを設定します。各 ArrayProxy したがってビューには、約 15 個のオブジェクトと、これらのオブジェクトに関する詳細情報が含まれています。

いくつかのロジックが原因で、すべてのデータがロードされるまでに約 5 秒かかります。

ローディングバーのようなものを作成する方法、または少なくとも各ビューを個別にレンダリングする方法を知る必要があります。

私の ajax ロード コードは単純です。

$.getJSON('http://json.url, function(data) {
    $.each(data, function(i, obj) {
        var obj = App.ObjModel.create(obj);
        if (obj.get('isCalculable')) {
            App.ObjController.addObj(obj);
        }
    });
});

しかし、いくつかの条件が true を返した後にビューをレンダリングするようにアプリケーションに指示するにはどうすればよいでしょうか?

助けてくれてありがとう、ディマ

4

2 に答える 2

4

データがいつロードされるかを Ember に判断させます。データがロードされているかどうかをビューで確認し、ロードされていない場合は、アニメーション gif などを表示します。これにより、データがまだ準備できていないことがユーザーに通知されます。

次のようなものを使用して、ビューでこれを行うことができます。

{{#if controller.isLoaded}}
  Display controller.content in loop or something
{{else}}
  <img src="/spinner.gif"> Loading data...
{{/if}}

このコード例は、Ember の公式 Web サイトから改作されています。ここで最後に見つけることができます。

于 2012-12-03T16:44:23.953 に答える
0

div などの内部で読み込み中の画像を使用して、リクエストの開始時と終了時にその表示を切り替えることができます。

Ajax リクエストの開始:

document.getElementById("LoadingImage").style.display="block";

完了後:

document.getElementById("LoadingImage").style.display="none";
于 2012-12-03T12:53:01.307 に答える