2

私は、本のリストを描くことになっている私のEmberアプリケーションの単純な部分を持っています。問題は、書籍がサーバーから読み込まれる前にユーザーがリストにアクセスすると、リストが空になることです。データの読み込みが完了した後でも、リストは空のままです。

データがロードされた後にEmberがビューを更新するために必要なメソッドは何ですか?そして、このコードを置くのに適切な場所はどこでしょうか?私のコードは次のようになります。

ルート:

App.MyRoute = Ember.Route.extend({
  model: function() {
    return App.store.find(App.Book); // get books from the server
  }
});

レンプレート:

{{#each book in model}}
  <li {{ bindAttr data-book-id="book.id" }}>
    <span>{{ book.name }}</span>
  </li>
{{/each}}

記録のために、私はこのようなことをしたいと思います:

{{#if model.get('isLoaded')}}
  {{#each book in model}}
    <li {{ bindAttr data-book-id="book.id" }}>
      <span>{{ book.name }}</span>
    </li>
  {{/each}}
{{else}}
   <span>Loading books...</span>
{{/#if}}
4

1 に答える 1

1

上記の私のコメントで述べたように、{{each}}ヘルパーには{{else}}、個々のアイテムに対して行うのとほぼ同じ方法で、リストにスピナーを追加する場所もあります。リストビューへの入力に関しては、フレームワークが提供されたレコードの入力を担当するため、手動でメソッドを呼び出す必要はありませModelArrayん。バックエンドAPIからJSONを受信して​​もデータを入力できない場合は、ストア/アダプター/シリアライザーまたはJSON形式に問題があるはずです。JSON応答を、Ember-Dataがアプリモデルの有効なデータとして期待するものに適切に変換するために、応答として送信するサーバーとストアの設定方法(アダプター/シリアライザーなど)を確認する必要があります。

于 2013-02-13T21:23:15.007 に答える