我每次碰到某个控制器/路线时都试图重新绘制图形。还有其他页面,其中输入被更改,并且图形需要在“建模器”页面导航到时重绘。建模器页面上的后续输入更改会导致重绘,但每次导航时,图表最初都会被错误地缩放。因此,当您到达“建模器”页面时,我需要根据所有新输入进行重绘。
export default Ember.Controller.extend({
calculator: Ember.inject.service(),
needs: ['modeller'],
init: function() {
this.drawCharts();
},
})
所以init()只在应用程序启动时调用一次,但每当命中“modeller”路径时我都需要调用它。
我已经尝试将其添加到控制器但无济于事:
doSomething: function() {
console.log("currentPath");
return;
}.observes('currentPath'),
我试图从路由器触发它:
var Router = Ember.Router.extend({
location: config.locationType,
doSomething: function() {
console.log("didTransition in router");
this.get('controllers.modeller').init();
return;
}.on('didTransition'),
});
...几乎可以工作 - 记录了“路由器中的didTransition”,但我无法引用控制器。它说“this.get(...)未定义”??
任何帮助表示赞赏。谢谢。
答案 0 :(得分:2)
利用modeller
路线中的didTransition
挂钩:
actions: {
didTransition: function() {
this.controller.drawCharts();
return true; // Bubble the didTransition event
}
}