アプリケーションのルーターは次のようになります (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つのことを一緒に機能させる方法をまだ理解できません(コントローラーがビューについて知っているはずがないことを読んだので、これは問題です)。
ご協力ありがとうございました!