gpt4 book ai didi

javascript - Ext.dispatch 来自 itemTap 监听器?

转载 作者:行者123 更新时间:2023-11-30 18:41:39 25 4
gpt4 key购买 nike

此处回答了类似的问题:How to add itemtap

但是当我尝试将我的 Ext.dispatch() 代码从 onItemDisclosure: 移动到 listeners: {itemtap:} 时,它不会'工作。

Ext.dispatch 最初住在这里:

    onItemDisclosure: {
scope: this,
handler: function (record) {
// Call the controller's "show" action
Ext.dispatch({
controller: myApp.controllers.products,
action: 'show',
id: record.getId()
});
}
}

但现在我希望它住在这里(删除披露按钮并使整行可选):

    listeners: {
scope: this,
itemTap: function (record) {
alert('!!!');
// Call the controller's "show" action
Ext.dispatch({
controller: myApp.controllers.products,
action: 'show',
id: record.getId()
});
}
}

编辑:itemTap: 监听器中的函数被调用(显示警报),但是 'show' 操作不会像 Ext.dispatch 存在于 onItemDisclosure: 中。

最佳答案

假设您像另一个问题一样在列表内部执行此操作,itemtap 事件将传递 4 个参数:Ext.DataView this、Number index、Ext.Element item、Ext.EventObject e。

所以你想做类似的事情

itemtap: function(dataView, index, item, e) {
Ext.dispatch({
controller: myApp.controllers.products,
action: 'show',
id: index
});
}

假设 getId() 只是为您提供记录的索引。如果它给你别的东西,你可以通过做

dataView.getStore().getAt(index) /* .getId() */

希望对您有所帮助。

关于javascript - Ext.dispatch 来自 itemTap 监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6684040/

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