我有一个控制器(KbRelatedGroupController
),它通过模板中的{{render}}
助手加载。
在控制器的操作中,如果我执行this.get('target')
,它将返回对页面的父控制器的引用(KbShowController
)。
如果我打电话给.target
,我会得到Discourse.Router
的引用,这对我没用。
我想要的是对KbShowRoute
的引用,这就是我所期望的,因为.target
从控制器调用时应该生成路由,不是吗?
这里真的很困惑。为什么从控制器获取对当前路由的引用是如此困难?
答案 0 :(得分:3)
我看待它的方式,你不应该这样做。你可以让行动冒泡到路线:
App.KbShowRoute = Ember.Route.extend({
...
actions: {
something: function() {
console.log('called second');
}
}
});
App.KbShowController = Ember.Controller.extend({
...
actions: {
something: function() {
console.log('called first');
}
}
});
请参阅docs
你可以:
this.controllerFor(this.routeName).sendAction('..', ...)
来调用控制器中的不同操作(或操作的一部分) 我希望这可以帮到你!