簡要說明:我正在使用Flex 3.5。Flex取消樹上的更改事件
我有一個樹組件用作不同「頁面」之間的導航菜單。 當用戶點擊菜單中的某個選項時,我通過在應用程序中的狀態組件之間切換來切換「頁面」。 問題是,當用戶確實點擊菜單中的一個選項時,我想對某個組件中的某些信息進行驗證。如果驗證失敗,我會顯示一個提醒,並且我想阻止導航到其他頁面。其中一部分不會改變文檔的當前狀態,但樹組件仍然繼續進行更改事件,結果是頁面A仍然顯示在屏幕上,而樹中選定的選項是頁面B(用戶想要瀏覽的內容,但由於某些信息無效而失敗)。
我試圖找出如何取消樹組件本身的更改事件。 我的想法不太適合:
我搜索了一個稍微不同的事件(比如'changing'或'startChange'),我可以在其上調用stopPropagation()方法(自定期'更改'event不可取消),但Tree組件不存在。
我也考慮過一直保存當前在Tree組件中被選中的選項,當驗證失敗時,我會將樹的selectedItem設置爲保存的選項。這也是醜陋的,因爲這樣的行爲會在樹上引發另一個變化事件,因此對國家組件的另一個改變以及我已經在其中的頁面的另一個變化。這是我真的不想做的事情。
我也在使用不同的組件,例如Menu(我也發現了一個垂直菜單的實現),但這似乎沒有幫助。那裏會存在同樣的問題。
有沒有適當的方法來做到這一點? 必須有一個最佳做法,以防止更改過程提交!