简要说明:我正在使用Flex 3.5。Flex取消树上的更改事件
我有一个树组件用作不同“页面”之间的导航菜单。 当用户点击菜单中的某个选项时,我通过在应用程序中的状态组件之间切换来切换“页面”。 问题是,当用户确实点击菜单中的一个选项时,我想对某个组件中的某些信息进行验证。如果验证失败,我会显示一个提醒,并且我想阻止导航到其他页面。其中一部分不会改变文档的当前状态,但树组件仍然继续进行更改事件,结果是页面A仍然显示在屏幕上,而树中选定的选项是页面B(用户想要浏览的内容,但由于某些信息无效而失败)。
我试图找出如何取消树组件本身的更改事件。 我的想法不太适合:
我搜索了一个稍微不同的事件(比如'changing'或'startChange'),我可以在其上调用stopPropagation()方法(自定期'更改'event不可取消),但Tree组件不存在。
我也考虑过一直保存当前在Tree组件中被选中的选项,当验证失败时,我会将树的selectedItem设置为保存的选项。这也是丑陋的,因为这样的行为会在树上引发另一个变化事件,因此对国家组件的另一个改变以及我已经在其中的页面的另一个变化。这是我真的不想做的事情。
我也在使用不同的组件,例如Menu(我也发现了一个垂直菜单的实现),但这似乎没有帮助。那里会存在同样的问题。
有没有适当的方法来做到这一点? 必须有一个最佳做法,以防止更改过程提交!