gpt4 book ai didi

javascript - Ember.js 2 当您点击它的路线时触发 Controller 操作

转载 作者:行者123 更新时间:2023-12-02 15:08:54 26 4
gpt4 key购买 nike

每次点击某个 Controller /路线时,我都会尝试重新绘制图表。当导航到“建模器”页面时,还有其他页面的输入发生更改,并且需要重新绘制图形。建模器页面上的后续输入更改会导致重绘,但每次导航到图表时,图表最初都会错误地缩放。因此,当您到达“建模器”页面时,我需要根据所有新输入进行重绘。

export default Ember.Controller.extend({
calculator: Ember.inject.service(),

needs: ['modeller'],

init: function() {
this.drawCharts();
},
})

因此,init() 仅在应用程序启动时调用一次,但每当点击“modeller”路线时我都需要调用它。

我尝试将其添加到 Controller 但无济于事:

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”,但我无法引用 Controller 。它说“this.get(...) 未定义”??

任何帮助表示赞赏。谢谢。

最佳答案

利用 didTransition modeller route 的钩子(Hook):

actions: {
didTransition: function() {
this.controller.drawCharts();
return true; // Bubble the didTransition event
}
}

关于javascript - Ember.js 2 当您点击它的路线时触发 Controller 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34923678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com