Extjs 如何基于“是”或“否”等条件允许/停止事件?

Extjs 如何基于“是”或“否”等条件允许/停止事件?,extjs,extjs4.2,sencha-architect,Extjs,Extjs4.2,Sencha Architect,我需要根据给定的条件允许或停止事件的发生,例如带有“是”、“否”和“取消”选项的弹出框 我需要通知用户有未保存的数据,如果用户希望保存,则忽略它或取消其当前操作(如选择更改或单击) 我尝试使用createInterceptor()函数。但无法实现该功能。 有谁能举例给我一些建议吗?基本上我想知道如何阻止一个事件 谢谢 已编辑 我喜欢在XXX事件之前使用的想法。但我仍然面临问题。正如我提到的,我需要询问用户是否希望保存未保存的数据,这是一个弹出消息框(带有YES、NO和CANCEL选项),异步运行

我需要根据给定的条件允许或停止事件的发生,例如带有“是”、“否”和“取消”选项的弹出框

我需要通知用户有未保存的数据,如果用户希望保存,则忽略它或取消其当前操作(如选择更改或单击)

我尝试使用createInterceptor()函数。但无法实现该功能。 有谁能举例给我一些建议吗?基本上我想知道如何阻止一个事件

谢谢

已编辑

我喜欢在XXX事件之前使用的想法。但我仍然面临问题。正如我提到的,我需要询问用户是否希望保存未保存的数据,这是一个弹出消息框(带有YES、NO和CANCEL选项),异步运行。因此,当我得到答复时,这件事已经发生了

例如,让我们想象一种情况,在一个网格中有一个页面显示记录列表,页面底部有一个分页工具栏(页面大小为10,总页数为10,总共有100条记录),位于左侧。如果在列表中选择记录,则详细信息将显示在右侧的详细信息视图中

现在,

  • 我选择了列表中的第三条记录,并在详细视图(表单)中对其进行了一些更改

  • 在不保存记录的情况下,我单击分页工具栏上的“下一页”按钮

  • 它将从分页工具栏的beforeXXX事件中显示一个确认框,但该事件仍将发生

  • 在这里,如果用户单击CANCEL,我将不得不恢复以前已经消失的状态。不知何故,我将不得不返回并选择上一页列表中的第三条记录

  • 所以为了解决这个问题,如果我从beforeXXX事件返回false,下一个XXX事件将不会被触发

  • 但是,如果用户单击是或否选项,我将不得不手动触发事件XXX,目前我无法为选择更改事件执行此操作

  • 像这样,可能有很多操作,如列表过滤、搜索、排序(A-Z/Z-A)、注销等。对于每个操作,我都必须编写定制代码,这完全破坏了代码的可读性

    所以我在想,是否有办法,通过将事件对象保持在beforeXXX中,以某种方式手动触发事件XXX…或者是否有任何其他方法来恢复以前的状态

    请给我一些建议……谢谢……

    许多活动都有“之前”对应项,例如“之前激活”。若从这种处理返回false,则停止处理

    如果没有,或者如果您的事件没有它的before-part,那么您可以使用传递给所有事件处理程序的事件对象并调用:

    ev.stopEvent();
    ev.stopPropagation();
    return false;
    
    在处理程序的末尾