Ember.js当你击中它的路线时触发控制器动作
Ember.js 2 trigger controller action when you hit it's route
每次我碰到某个控制器/路由时,我都会尝试重新绘制图表。还有其他页面的输入被更改,当导航到"建模者"页面时,图形需要重新绘制。建模器页面上的后续输入更改会导致重绘,但每次导航到图形时,图形最初都会缩放不正确。因此,我需要在您到达"建模器"页面的那一刻根据所有新输入进行重绘。
export default Ember.Controller.extend({
calculator: Ember.inject.service(),
needs: ['modeller'],
init: function() {
this.drawCharts();
},
})
所以 init() 只在应用程序启动时被调用一次,但是每当遇到"建模者"路线时,我需要一些东西来调用它。
我尝试将其添加到控制器中,但无济于事:
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(...未定义"??
任何帮助表示赞赏。谢谢。
利用modeller
路由中的didTransition
钩子:
actions: {
didTransition: function() {
this.controller.drawCharts();
return true; // Bubble the didTransition event
}
}
相关文章:
- 我希望这个img类是一个按钮,当你点击它时,它会播放hello.mp3
- 当你有很多文本框时,如何从一个模态中只填充一个文本框
- Javascript-我如何获得YouTube视频的缩略图(当你悬停到滑块时显示的缩略图)
- 如何连续运行计时器?(当你刷新时,不要从头开始)
- 我正试图让它,当你点击其中一个下拉选择时,它会添加到列表中,这是我们的一个下拉按钮的代码
- 当你在流星收藏前使用它时,@是什么意思
- 当你应该在 Rails 应用程序中使用来自控制器的变量时,在哪里放置 javascript 代码
- Ember.js当你击中它的路线时触发控制器动作
- 使用ajax打印“;你好,世界"当你点击一个按钮时
- 当你比较两个字符串时,你到底在比较什么
- 当你点击另一个东西时,翻转它的颜色
- 当你改变原型时,构造函数为什么会改变?(参见代码)
- 当你缩小浏览器时,如何创建自动调整iframe大小
- 当你点击图片时,让图片上悬停内容的CSS保持不变
- 当你返回浏览器时会发生什么
- 当链接悬停时创建一个弹出窗口,就像在facebook中一样,当你把光标放在链接上时,它会显示发送消息等选项
- 当你想要所有结果而不管是否被拒绝时,用什么代替Promise.all()
- 什么'当你'I’我失去了网络连接
- 在谷歌文档中,当你将一堆单元格传递到一个自定义函数中时,你如何确定长度
- 当你在HTML5视频控制器上点击播放时,哪些变量/属性会发生变化