gpt4 book ai didi

javascript - Ember.js - 在 Controller /路由器链上传播事件

转载 作者:数据小太阳 更新时间:2023-10-29 05:19:19 26 4
gpt4 key购买 nike

在 Ember.js 中,未在 Controller 中处理的事件沿路由器链传播到应用程序路由(有关更多详细信息,请参阅 http://emberjs.com/guides/views/handling-events/)。

有没有办法在 Controller 中定义一个事件处理程序,允许事件继续传播到路由器?

App.SampleController = Ember.ObjectController.extend({
myEvent: function(obj) {
this.set('aVariable', true);
}
});

App.ApplicationRoute = Ember.Route.extend({
events: {
myEvent: function(obj) {
this.transitionTo('something');
}
}
});

有没有一种方法可以让 CarsController 中的 myEvent 处理程序设置其内部状态变量,同时将事件沿链向上踢到应用程序路由?我知道这一点:

App.__container__.lookup('router:main').send('myEvent', obj);

但它使用了 Ember 内部结构。我希望有一个更标准的方法来做到这一点。

最佳答案

实现这一目标的一种方法可能是:

App.SampleController = Ember.ObjectController.extend({
needs: 'application',
myEvent: function(obj) {
this.set('aVariable', true);

this.get('controllers.application').send('myEvent');
}
});

工作 demo .

希望对您有所帮助。

关于javascript - Ember.js - 在 Controller /路由器链上传播事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17751081/

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