簡體   English   中英

在沒有瀏覽器歷史記錄更改的情況下尋找有關GWT / MVP操作的輸入

[英]Looking for input on GWT / MVP action w/o browser history change

我正在嘗試使用MVP模式開發GWT應用程序。 到目前為止,除了一種特殊的操作情況之外,效果還不錯:不更改url的操作(瀏覽器歷史記錄不變)。

在GWT MVP模式中,事件是從演示者發送的,應用控制器會捕獲事件並更新瀏覽器歷史記錄。 如果歷史記錄已更改,則視圖將更新。

**具有歷史更改的MVP(效果很好)**

Current URL is /list
User clicks on contactdelete button.
Fire DeleteContactAction event.
App controller catches, change history to 'delete'
onValueChange is called
if (token.equals("delete")) 
delete contact screen, then delete contact
Fire ContactDeletedEvent 
app controller catches and change the history to list 
onValueChange is called: contact list refreshes

沒有歷史更改的對話框的GWT MVP模式

**問題**-我使用對話框,但不想更改瀏覽器歷史記錄,所以這里是問題所在:

  Current URL is /list
  User clicks on contactdelete button.
  Contact is deleted
  Fire ContactDeletedEvent.
  App controller catches, change history to 'list'
  **onValueChange is NOT called** because url is already /list and there is no change
  # problem: contact list does not refresh

問題:有人知道在MVP上下文中實現此目標的模式嗎?

任何幫助/想法表示贊賞。

您是否正在使用某些框架(除了GWT之外)會自動更改歷史記錄?

常規的GWT / MVP不需要更改歷史記錄,實際上,通常由應用程序來更新歷史記錄本身。

如果要在不更改歷史記錄的情況下更新應用程序的狀態,則可以使用EventBus發布應用程序其他元素可以訂閱的事件,以在不更改歷史記錄的情況下更新應用程序的狀態。

基本上,您將必須創建自己的PlaceHistoryHandler。 您的自定義PlaceHistoryHandler將忽略特定類型的PlaceChangeEvent(即,它將不會更新其Historian)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM