我的应用程序的路由器看起来像这样(它是 CoffeeScript):
App.Router.map () ->
@resource 'conversations', { path: '/' } ->
@resource 'conversation', { path: ':conversation_id' }
@route 'new'
所以,在我的应用程序中,我有类似/new
, /1
,/2
等的路径。
我想检测从/1
to的转换以/2
在我的视图中进行一些初始化(基本上,将焦点放在 textarea 字段上)。不幸的是,由于/1
和/2
使用相同的路线,似乎几乎不可能检测到这种转变。
我尝试didInsertElement
在视图中使用(如此处currentPath
所述)或在控制器中观察(如此处所述)。/new
如果我从to (不同的路线)去,它工作正常,/1
但如果我从/1
to 去/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()
}
但是我仍然不知道如何使这两个东西一起工作(这是一个问题,因为我读到控制器不应该知道视图)。
谢谢您的帮助!