2017-07-17 117 views
0

現在管理上休息刪除資源從本地狀態時,它會發出一個DELETE API調用。所以它甚至在用GET刷新其狀態之前就從UI中消失。這很酷。重寫CRUD_DELETE_SUCCESS減速刪除

雖然有時刪除操作不是立即執行的。真實世界的例子將是AWS - 刪除一個EC2實例需要時間。刪除RDS實例需要15分鐘。刪除雲端實例需要更長的時間。

對於我的API的一個子集我想DELETE按鈕,更新本地狀態(場「狀態」變爲「刪除」),而不是刪除。

縱觀this commit,所有CRUD_DELETE_SUCCESS導致資源從列表中移除得到。

我想我可以實現一個自定義動作和按鈕(可能有更多的複製麪食添加一個確認頁?),但我不知道如何更新本地狀態 - 顯然這自動發生的fetch: UPDATE操作?

有沒有人有任何想法的'正確'的方式來做到這一點在管理 - 休息?

+0

這是令人沮喪的是'crudDelete'的東西,可以在''來設置,但現在有辦法表面。 – Jc2k

+0

您可以嘗試打開問題。如果他們喜歡你的想法,那麼他們會聽。至少爲他們爲什麼不聽,提供了明確的理由。 –

回答

0

你可能也需要一個自定義的傳奇。在它裏面,用你需要的邏輯來處理你的自定義刪除操作,檢查它是否已經完成。當它發生時,用預期的數據發送CRUD_DELETE_SUCCESS(你將不得不探索代碼)。

+0

但是,如果我調度'CRUD_DELETE_SUCCESS'不會實際觸發我試圖避免觸發的代碼的位? – Jc2k

0

您可以隨時使用AOR進行自定義操作。 DELETING可以是組件分派的操作。

您可以將減速執行狀態的變化,當它看到刪去第(集合記錄狀態刪除) https://marmelab.com/admin-on-rest/Actions.html#using-a-custom-reducer

佐賀可以將用戶重定向到控股頁。當刪除操作完成,否則DELETING_FAILURE

AOR將拍攝DELETING_SUCCESS。您可以使用此功能根據通知狀態顯示通知。

你基本上會繞過現有的邏輯來處理整個循環。

+0

這大致是我一直試圖進入的方向 - 但它似乎是一個很多複製和粘貼和重複的地獄。 – Jc2k

+0

只要您的數據流是從aor自定義(並單獨)的,我真的不知道它是否會大量複製粘貼。如果您想在任何時候加入正規流程,那麼您可以從自定義操作中拍攝CRUD_DELETE_SUCCESS/FAILURE(如@gildas所示),並加入常規流程。 –

+0

但是,如果我激發'CRUD_DELETE_SUCCESS'我不會觸發列表減速器? (見[這裏](https://github.com/marmelab/admin-on-rest/commit/cd5a5a9e95f013cd929cfe6398fed7f603ce9d3d) – Jc2k