4

私は Ember.js の初心者で、アプリを開発しているときに、新しいルーター API について知りました。これはマージされ、ドキュメントはまったくありません(これを除く - https://gist.github.com/3981133

アプリを新しいルーター API に変換する方法さえわかりません。この「ウォークスルー」はあまり役に立ちません。

1) テンプレートを名前付きアウトレット ( {{outlet main}} など) に接続するにはどうすればよいですか?

2) App.router.someController と App.router.get('store').findAll() と .find() を使用していますが、それらを何に置き換える必要がありますか?

3) html の handlebars タグに変更はあります<script type="text/x-handlebars" data-template-name="templateName">か?

今のところ考えられるのはそれだけです..

4

1 に答える 1

5

小さなサンプルプロジェクトでこのアップグレードを自分で完了しました

https://github.com/toranb/ember-code-camp

いくつかの質問に直接答えるには

1) connectOutlets のノイズはもうありません。ルートを ember ルート クラス/オブジェクトにマップするだけです。このアプローチは非常に慣例に基づいています(テンプレート/ビュー/コントローラー/ルートはすべて一致します)

CodeCamp.Router.map(function(match) {
  match("/").to("sessions");
  match("/session/:session_id").to("session"); //no route needed -ember will apply the context for you
  match("/speaker/:speaker_id").to("speaker"); //same as above so long as my handlebars template name matches (speaker for this route)
});

CodeCamp.SessionsRoute = Ember.Route.extend({
  setupControllers: function(controller) {
    controller.set('content', CodeCamp.Session.find());
  }
});

2 a)ルーターにストアを取得します

App.YourObject.find()

2 b) コントローラー内からストアを次のようにコミットできます

this.get('store').commit()

3) ルート関連のヘルパーを除いて、私のハンドルバーは変更されていません。

I remove action helpers defined with <a {{action and used linkTo instead

  {{#linkTo 'session' session}}View Session Details{{/linkTo}}
于 2012-12-31T15:11:37.767 に答える