我认为方法controllerFor
应在此事件中是可用:
App.ApplicationRoute = Ember.Route.extend
events:
someAction: (user) ->
console.log this.controllerFor("currentUser").get("name")
更新响应于commments问题:
这一切都取决于你想要做什么。在这样一个基本的方法上担心DRY,没有多少意义。
在你的荣誉离开的情况下,我会做这样的:
App.ApplicationRoute = Ember.Route.extend
events:
someAction: (user) ->
this.controllerFor("currentUser").decrementKudos();
// implement the decrementKudos in your controller
,但我想保存这一个控制器还应该工作,如果这是你太多代码:
App.ApplicationRoute = Ember.Route.extend
currentUserCon : this.controllerFor("currentUser")
events:
someAction: (user) ->
this.currentUserCon.decrementKudos();
// implement the decrementKudos in your controller
谢谢,但是有可能获得对该属性的引用,例如可以将它存储在变量中以便我可以对其进行操作吗? 'name = this.controllerFor('currentUser')。get'name'' 'return“hello,#{name}' 是否有可能?以多次访问控制器的方式不是DRY :) – wryrych 2013-04-10 06:15:27
例如这将是一个过度杀伤: 'this.controllerFor('currentUser')。set'kudosLeft',this.controllerFor('currentUser')。get'kudosLeft' - 1' :) – wryrych 2013-04-10 06:17:34
请参阅我的更新回复。 。 – mavilein 2013-04-10 09:56:07