アプリケーションのルーターは次のようになります (CoffeeScript です)。
App.Router.map () ->
@resource 'conversations', { path: '/' } ->
@resource 'conversation', { path: ':conversation_id' }
@route 'new'
したがって、私のアプリには、、、などのパスがあり/new
ます。/1
/2
/1
ビューでいくつかの初期化を行うために からへの遷移を検出したいと/2
思います (基本的に、テキストエリア フィールドにフォーカスを置きます)。残念ながら、/1
と/2
は同じルートを使用しているため、その遷移を検出することはほぼ不可能のようです。
didInsertElement
ビューで使用するか(ここでcurrentPath
説明) 、コントローラーで観察してみました(ここで説明)。から/new
へ/1
(異なるルート) に行くとうまくいきますが、 から に行くとうまくいきませ/1
ん/2
。
を使用することを提案するこの要点を見つけましたStateManager
が、時代遅れのようです (そして、それが本当に必要なものかどうかはわかりません)。
あなたは私に何をするように提案しますか?
編集
setupController
毎回呼び出されるようなので、次のようにオーバーロードすることにしました。
App.ConversationRoute = Ember.Route.extend {
setupController: (controller, model) ->
controller.set 'model', model
# do something here?
}
そしてinit
、ビュー内のメソッドを呼び出す必要があります。
App.ConversationView = Ember.View.extend {
init: ->
@$('form textarea').focus()
}
しかし、これら2つのことを一緒に機能させる方法をまだ理解できません(コントローラーがビューについて知っているはずがないことを読んだので、これは問題です)。
ご協力ありがとうございました!