1

現在、私は ember rc-1 と ember-data rev-11 を使用しています。

子ルートから ajax の成功を得る前に、親のルート テンプレートをレンダリングできるかどうかを知りたいです。

私はルーターを持っています:

-index
      -objects

索引のテンプレート:

<!-- some html that i would like to display on page load event -->
{{outlet}}

オブジェクトのテンプレート:

{{#each item in controller }}
<!-- data from item -->
{{/each}}    

オブジェクト ルート モデル メソッド:

model: function(){
    return App.Object.find({limit: 0}) //this request is really heavy for backend and takes a lot of time
}

そのため、オブジェクトの URL に移動すると、サーバーからすべてのオブジェクトを含む応答が返されるまで空白のページが表示されます。

たぶん私は前にいますが、ember pre2 または pre-3 で完全にうまく機能しました。何か案は?

4

1 に答える 1

4

デフォルトでは、クエリを渡すmodel.findと promise が返されます。また、ルートのモデル フックが promise を返す場合、ember ルーターは読み込み状態に入り、promise が解決されるのを待ちます。

代わりに App.Object.find() を使用すると、ember は約束のないライブ クエリを返します。モデルに対して find が呼び出されたのが初めての場合、store は初期データセットをロードするためにパラメーターなしで非同期クエリを開始します。

何か案は?

{limit: 0} パラメータを取り除くことができれば理想的です。それ以外の場合は、setupController フックからモデルを設定することを検討してください。

App.PostRoute = Ember.Route.extend({
  setupController: function(controller, model) {
    controller.set('content', App.Object.find({limit: 0}));
  }
});
于 2013-03-15T12:35:17.433 に答える