2

素晴らしい質問Ember.js - CRUD シナリオ - Specifying View from a Route find と findAll への回答で、URL を自動的に逆シリアル化するためにモデルで使用されることが言及されています。

このインターフェイスはどのように見えますか?それは本当にモデルであり、コントローラーではありませんか?

例は素晴らしいでしょう。

4

1 に答える 1

4

いつものように、ドキュメンテーションは素晴らしい出発点です。デフォルトのシリアライズ/デシリアライズ メソッドについては、https://github.com/emberjs/ember.js/blob/master/packages/ember-routing/lib/routable.js#L231-273をご覧ください。

しかし、あなたは正しい考えを持っています。

  • Ember は最も近い動的セグメントを取得します。blog_post_id
  • を最後から剥がして_id残しますblog_post
  • BlogPostEmber.String.classify('blog_post')を返す呼び出し
  • App.BlogPost などの Ember 名前空間でその modelClass を探します。
  • そのモデルで find を呼び出します。例: App.BlogPost.find(1)

編集:

Neppord のコメントに応えて、彼は複数の動的セグメントについて尋ねました。はい、ember-router は現在、単一のルートで複数の動的セグメントをサポートしています。

Ember.Route.extend({
  route: "/:post_type/:post_id"
})

本当に必要な場合は、独自の逆シリアル化/シリアル化メソッドを作成する必要があります。個人的には、代わりにネストされた動的状態を使用します。

Ember.Route.extend({
  route: "/:post_type"
  post: Ember.Route.extend({
    route: "/:post_id"
  })
})
于 2012-07-10T09:38:12.883 に答える