Apache flex 如果继续而不在Flex中保存,是否显示警报?

Apache flex 如果继续而不在Flex中保存,是否显示警报?,apache-flex,events,navigation,Apache Flex,Events,Navigation,功能: 在我的应用程序的一个组件上,我有一个编辑/锁定系统。当用户开始编辑时,他会锁定该文件,以便其他用户无法编辑它 问题场景:当用户激活编辑模式并离开屏幕时,我想显示一个带有两个选项的警报:保存更改或放弃更改 退出屏幕的方式有多种: 左侧有一个列表,其中包含其他可能的editabel数据。单击可更改“我的组件”中的数据。 顶部有一个菜单栏,通向其他屏幕。 版本组件嵌入在选项卡导航器中。更改选项卡时,必须显示警报。 关闭浏览器。 我是否必须捕捉所有这些事件并在所有这些地方插入插头? 是否有任何形

功能: 在我的应用程序的一个组件上,我有一个编辑/锁定系统。当用户开始编辑时,他会锁定该文件,以便其他用户无法编辑它

问题场景:当用户激活编辑模式并离开屏幕时,我想显示一个带有两个选项的警报:保存更改或放弃更改

退出屏幕的方式有多种:

左侧有一个列表,其中包含其他可能的editabel数据。单击可更改“我的组件”中的数据。 顶部有一个菜单栏,通向其他屏幕。 版本组件嵌入在选项卡导航器中。更改选项卡时,必须显示警报。 关闭浏览器。 我是否必须捕捉所有这些事件并在所有这些地方插入插头?
是否有任何形式的聚焦于麦加主义?

第一个问题的答案是:是的

您需要监视所有可能损害当前编辑数据的退出事件

那么现在的问题是如何妥善管理。使用MVC框架,您可以从组件触发适当的命令:

更改\u列表\u项目新项目 “更改”选项卡“新建”选项卡 将屏幕更改为新屏幕 然后,每个命令都会检查当前编辑的选项卡是否已保存。如果没有,则显示警报。否则,如果没有更改,则允许列表、屏幕选择器和选项卡栏继续

因此,您的组件列表、屏幕、选项卡需要实现某种回滚或默认机制。通常,MVC命令中的中央验证器必须允许更改它们的状态

在列表的情况下:我建议列表不能通过鼠标单击来选择,而只能通过编程来选择。在列表项click事件上设置侦听器。如果命令允许设置新项目,它将通知列表。在MVC中,通常通过发送一条异步消息,该消息由列表的中介器接收。[[更正确的是:该命令将设置一些模型属性,例如currentListItem和模型,而不是发送异步消息。]]


编辑:对于浏览器关闭事件,您需要呼叫JavaScript专家。

第一个问题的答案是:是

您需要监视所有可能损害当前编辑数据的退出事件

那么现在的问题是如何妥善管理。使用MVC框架,您可以从组件触发适当的命令:

更改\u列表\u项目新项目 “更改”选项卡“新建”选项卡 将屏幕更改为新屏幕 然后,每个命令都会检查当前编辑的选项卡是否已保存。如果没有,则显示警报。否则,如果没有更改,则允许列表、屏幕选择器和选项卡栏继续

因此,您的组件列表、屏幕、选项卡需要实现某种回滚或默认机制。通常,MVC命令中的中央验证器必须允许更改它们的状态

在列表的情况下:我建议列表不能通过鼠标单击来选择,而只能通过编程来选择。在列表项click事件上设置侦听器。如果命令允许设置新项目,它将通知列表。在MVC中,通常通过发送一条异步消息,该消息由列表的中介器接收。[[更正确的是:该命令将设置一些模型属性,例如currentListItem和模型,而不是发送异步消息。]]


编辑:对于浏览器关闭事件,您需要呼叫JavaScript专家。

我强烈怀疑您是否能够捕捉到浏览器关闭或任何类似事件,我希望如此@实际上,您可以捕捉到试图使用JavaScript关闭的浏览器。如果你不相信我的话,在保存之前尝试关闭GMAIL或Google文档,同时编辑一些内容。理论上,使用外部界面可以在关闭浏览器之前捕获用户。@Jonathan:噢,谢谢你指出这一点!我强烈怀疑你能赶上浏览器关闭或类似的事情,我希望@实际上,您可以捕捉到试图使用JavaScript关闭的浏览器。如果你不相信我的话,在保存之前尝试关闭GMAIL或Google文档,同时编辑一些内容。理论上,使用外部界面可以在关闭浏览器之前捕获用户。@Jonathan:噢,谢谢你指出这一点!谢谢你的回答。但糟糕的是,没有使用MVC框架,这将是一项非常艰巨的工作,需要插入警报。。。我将把这个问题保留几天,看看是否还有其他人有其他观点。我目前的工作完全一样:可编辑选项卡、屏幕、列表和警报保存、放弃,但不包括浏览器内容:D然而,它几乎完成了。@Zenklys Jens的回答几乎是正确的。对于这里类似的需求,我捕获使用Mate框架的所有导航事件,并检查用户是否保存了他们的工作。如果没有,我将发送保存提示。我也同意这个答案。我过去做过的一件事是,当我可以摆脱它时,在一个模式弹出窗口中生成我的表单。这当然了
对可用性有其他影响,但它严重限制了表单的退出点。拥有一个合适的框架,如机器人腿、配偶或Parsely,对这些任务非常有帮助。我试试看。谢谢你的回答。但糟糕的是,没有使用MVC框架,这将是一项非常艰巨的工作,需要插入警报。。。我将把这个问题保留几天,看看是否还有其他人有其他观点。我目前的工作完全一样:可编辑选项卡、屏幕、列表和警报保存、放弃,但不包括浏览器内容:D然而,它几乎完成了。@Zenklys Jens的回答几乎是正确的。对于这里类似的需求,我捕获使用Mate框架的所有导航事件,并检查用户是否保存了他们的工作。如果没有,我将发送保存提示。我也同意这个答案。我过去做过的一件事是,当我可以摆脱它时,在一个模式弹出窗口中生成我的表单。这当然对可用性有其他影响,但它严重限制了表单的退出点。拥有一个合适的框架,如机器人腿、配偶或Parsely,对这些任务非常有帮助。我试试看。