我正在尝试使用控制器ref让项目公开在Sencha Touch的列表项中工作。但事件似乎永远不会在控制器内发射/接收。我见过的所有示例都有使用监听器的列表项,但我认为这不是非常MVC所以我试图这样做(有没有理由为什么他们使用监听器而不是控制器?)< / p>
在我看来,列表是EnquiryIndex视图中的一个项目。
当我在控制台窗口中执行此操作时,它会正确返回列表,因此我知道ref正常工作:
Ext.ComponentQuery.query("enquiryindexview list")[0]
见下面的例子:
Ext.define('MyApp.controller.EnquiryIndex', {
extend: 'Ext.app.Controller',
requires: [
],
config: {
refs: {
enquiryIndexViewRef: 'enquiryindexview list'
},
control: {
'enquiryIndexViewRef': {
disclose: 'onDiscloseEnquiryIndex'
}
}
},
onDiscloseEnquiryIndex: function (rec) {
// never gets here!
}
});
答案 0 :(得分:0)
试试这个
config: {
control: {
'enquiryindexview list': {
disclose: 'onDiscloseEnquiryIndex'
}
}
或者
config: {
refs: {
enquiryIndexViewRef: 'enquiryindexview list'
},
control: {
enquiryIndexViewRef: {
disclose: 'onDiscloseEnquiryIndex'
}
}
希望这有帮助
答案 1 :(得分:0)
您可能错过的是在app.js中添加此行
controllers: ['EnquiryIndex']
,
试试这个,现在应该可以了。