我正在嘗試爲以角4寫的應用程序實現搜索功能。它基本上用於顯示大量數據的表。我還添加了ngrx商店。 在商店中實施應用程序搜索的正確方法是什麼? 目前,我正在爲搜索查詢每隔一次清除商店,然後用從異步調用接收到的數據填充到後端。然後我在HTML中顯示這些數據。異步調用是從一個效果文件中完成的。使用ngrx/store angular進行搜索2
0
A
回答
1
我最近使用Angular 4和@ngrx實現了一個搜索功能。 我這樣做的方式是派遣一個EXECUTE_SEARCH操作來將查詢字符串設置到您的商店並觸發一個效果。該效果觸發了異步調用。當異步調用返回時,我根據結果調度了FETCH_SUCCESSFUL操作或FETCH_FAILURE操作。如果成功,我將結果放入我的商店。
當您清除存儲結果時,確實取決於所需的行爲。我的項目中,我清除了FETCH_SUCCESSFUL上的結果,取代了舊結果。在其他使用情況下,當您執行新搜索時(在EXECUTE_SEARCH減速器中),清除存儲結果可能是合理的。
0
好了,因爲我沒有找到這個問題的一個長期我把保存任何數據是從後端來,然後在下面的方式搜索的數據的方法回答:
我實現了一個搜索效果,這將啓動對後端的異步調用。從後端我返回搜索結果以及他們的ID。收到數據後的這種效果會觸發搜索完成操作。然後,在這個Reducer動作中,我使用名稱searchIds將結果的id存儲在我的狀態中,並且我創建了一個名稱實體的狀態,該狀態基本上是以ids爲關鍵字的數據映射。
將從後端接收的數據將進行過濾,以檢查它是否已存在於商店中,如果不存在,則將其附加到實體。之後,我訂閱了一個選擇器,它將基本查找searchIds中存在的鍵並僅從實體返回該數據。由於它是一張已經有ID作爲鍵的地圖,因此根據searchIds進行搜索非常高效,而且我也不必清除已有的數據。這反過來又保持了@ ngrx/store緩存我收到的任何數據的真正目的。
相關問題
- 1. 使用Angular進行延遲搜索
- 2. 使用Angular Material進行遠程搜索2
- 3. 使用Angular進行搜索收件箱(如Google搜索)
- 4. 使用2 select_tag進行導軌搜索
- 5. 使用Angular-CLI進行Angular 2安裝
- 6. Angular 2 - 使用管道進行不區分大小寫的搜索
- 7. 如何使用Angular 2中的兩個術語進行實時搜索?
- 8. 使用NSOperation進行搜索
- 9. 使用xsl進行搜索
- 10. 使用UITextField進行搜索
- 11. 使用grep進行搜索
- 12. 使用opencsv進行搜索
- 13. 使用BinarySearch進行搜索
- 14. 使用EntityFramework進行搜索
- 15. 我應該使用Angular JS進行分面搜索嗎?
- 16. 我如何使用Angular查詢參數進行搜索
- 17. Angular 2 - 使用ASP.NET MVC進行路由
- 18. 使用Webpack進行Angular 2路由
- 19. 使用sqlite進行搜索索引?
- 20. 使用搜索索引進行篩選
- 21. 使用javascript進行二進制搜索
- 22. Angular JS執行器搜索
- 23. C#在2個索引上進行二進制搜索
- 24. 在wordpress中使用meta_query進行搜索
- 25. 使用VLookUp進行部分搜索
- 26. 使用InnoDB表進行全文搜索
- 27. 使用儀器進行泄漏搜索
- 28. 使用socket.io進行實時搜索
- 29. 使用Sails.js進行全文搜索
- 30. 使用XPath和php進行搜索
你能詳細說一下嗎?搜索是否會觸發異步調用,或者這更像是一種「搜索查詢」僅應用於接收到的數據集的過濾功能? – amu
是的,搜索觸發異步調用。 –