0

Ember RESTadapter を使用する場合、JSON 呼び出しはどの時点で実行されますか?

例 1:

  • /index.html#/articles/ に移動すると、リソースの記事への JSON 呼び出しが実行されます。
  • 次に /index.html#/articles/2 を参照すると、追加の呼び出しは実行されません。
  • JSON 経由で個々の記事への呼び出しを期待していました。

例 2:

  • アプリケーションの読み込み後、すぐに /index.html#/articles/1 に移動すると、2 つの JSON 呼び出しが実行されます。
  • ただし、記事のコレクションを (#each で) ループすると、記事 1 だけがデータで完了します。
  • なぜ 2 つの呼び出しが行われ、1 つの記事のデータしか読み込まれないのですか?

私のルート:

App.ArticlesRoute = Ember.Route.extend({
  model: function () {
    return App.Article.find();
  }
});

App.ArticlesShowRoute = Ember.Route.extend({
  model: function (params) {
    return App.Article.find(params.article_id);
  }
});

誰かが私に基本的な説明や追加のヘルプへのリンクを教えてくれることを願っています.

どうもありがとうマーク

4

1 に答える 1

2

/index.html#/articles/ に移動すると、リソースの記事への JSON 呼び出しが実行されます。

アダプターはすべての記事を取得するため、これは正しいことです。

次に /index.html#/articles/2 を参照すると、追加の呼び出しは実行されません。

商品はすでにストアにあり、そこから提供されるため、これも正しいです。

それぞれのルーター マップは次のようになります。

App.Router.map(function() {
  this.resource('articles', function() {
    this.route('show', {path: '/show/:article_id'});
  })
});

これはArticlesShowRouteデフォルトの動作であるため、これは時代遅れになります。ArticlesShowRouteデフォルトの動作とは異なるものが必要な場合にのみ、明示的に定義する必要があります。

アプリケーションの読み込み後、すぐに /index.html#/articles/1 に移動すると、2 つの JSON 呼び出しが実行されます。

これは冗長かもしれません...

ただし、記事のコレクションを (#each で) ループすると、記事 1 だけがデータで完了します。

この時点で、記事コレクションをループして、表示するそれぞれの記事にリンクできるはずです。

{{#each article in model}}
  {{#linkTo 'articles.show' article}}Show article{{/linkTo}}
{{/each}}

それが役に立てば幸い。

于 2013-08-03T15:27:28.007 に答える