如何从视图中的菜单项中激发事件,并在ExtJS中的控制器中捕获它
How to fire event from menu item in view and catch it in controller in ExtJS?
我在ExtJS中有一个要求,在单击菜单项时,我必须从视图中激发一个事件,并在控制器中捕获它。
以下是我的方法,但不起作用。调试时,控制一直到火灾事件,但它没有在控制器中捕获(不转到onResetAction功能)
请帮帮我。
视图:
new Ext.menu.Menu ({
width: 150,
height: 100,
itemId: 'menuItem123',
margin: '0 0 0 0',
items: menuOptions,
listeners:{
'click': function(menu, menuItem, e, eOpts)
{
if(menuItem.text === 'Inherit') {
var viewConfig = {
'viewName': 'Preference',
'preferenceElement': preferenceElement,
'scope': menu
};
menuItem.fireEvent('resetData', viewConfig);
}
this.hide();
}
}
});
控制器:
init: function(application) {
this.listen({
component: {
'container[itemId=menuItem123] menuItem[text=Inherit]': {
'resetData': this.onResetAction,
'refreshLogoData': this.onRefresh
}
}
});
},
onResetAction: function(viewConfig) {
var me = this;
/* some function*/
},
我想您的选择器不工作,您可以使用Ext.ComponentQuery.query()
或Ext.all()
进行检查。
如果这是问题所在,请尝试将选择器从:更改为
'container[itemId=menuItem123] menuItem[text=Inherit]'
至:
'#menuItem123 menuItem[text=Inherit]'
尝试这个
init: function(application) {
var me = this;
this.control({
'#menuItem123 menuitem': { //menuitem all small
resetData: me.onResetAction,
refreshLogoData: me.onRefresh
}
});
},
onResetAction: function(viewConfig) {
var me = this;
/* some function*/
},
这是一把有类似图案的小提琴:https://fiddle.sencha.com/#fiddle/13p7
相关文章:
- 如何在视图中保存用户输入内容,并在离开页面时对控制器进行后期调用
- 如何将日期时间值附加到表单数据并在控制器中接收它
- 将Scope变量作为指针发送,并在控制器外部对其进行更改
- 在控制器中创建StandardListItem并在赢得的项目上按下事件'不要开火
- 如何将json文件中的数据提取到对象数组中,并在两个控制器之间共享
- 在一个控制器中更新服务变量,并在另一个控制器 - Angular JS中使用更新的值
- 从 Zend 控制器传递值并在 JS 响应中获取它
- Angularjs:如何捕获
标签中的文本并在我的控制器中使用它 - 我们可以将控制器中的JSON数据(MM/DD/YYYY格式)与今天的's日期,并在数组中显示筛选列表
- 如何读取存储在图像的数据src中的URL,并在另一个img控制器的src中设置该URL onclick
- EmberJS:将输入值绑定到控制器属性,并在更改时运行过滤器
- 调用控制器方法并在客户端上获取数据
- 如何打开模态窗体,在控制器中执行操作,并在 Grails 中呈现结果
- 如何从视图中触发事件(自定义事件)并在 Ext JS 的控制器中处理它们
- 如何在服务中定义数组并在 AngularJS 中的 2 个控制器之间共享它
- 角度 - 更改服务中的对象属性值,并在另一个控制器中使用它
- 相同的控制器用于详细信息并在 angularjs 中进行编辑
- 余烬过滤内容并在过滤器中使用控制器方法
- ng-switch-when:它是否每次重新创建新控制器并在选择不同步骤时删除以前的数据
- 将js变量传递给控制器并在ci中构建新视图