我正在嘗試爲以角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 Material進行遠程搜索2
- 2. 使用2 select_tag進行導軌搜索
- 3. 使用Angular-CLI進行Angular 2安裝
- 4. Angular 2 - 使用管道進行不區分大小寫的搜索
- 5. 如何使用Angular 2中的兩個術語進行實時搜索?
- 6. 使用grep進行搜索
- 7. 使用EntityFramework進行搜索
- 8. 使用NSOperation進行搜索
- 9. 使用xsl進行搜索
- 10. 我應該使用Angular JS進行分面搜索嗎?
- 11. 我如何使用Angular查詢參數進行搜索
- 12. Angular 2 - 使用ASP.NET MVC進行路由
- 13. 使用sqlite進行搜索索引?
- 14. 使用搜索索引進行篩選
- 15. 使用javascript進行二進制搜索
- 16. C#在2個索引上進行二進制搜索
- 17. 使用Lucene進行樹搜索
- 18. 使用CodeIgniter進行網站搜索?
- 19. 使用OQL進行字符串搜索
- 20. 使用搜索功能進行篩選
- 21. 使用Elasticsearch進行地理搜索
- 22. 使用Like功能進行搜索
- 23. 使用Join in Rails進行搜索3
- 24. 使用sql進行關鍵字搜索
- 25. 使用谷歌API進行Youtube搜索
- 26. 使用CouchDB進行多標準搜索
- 27. 使用Linq和Trim.Text進行搜索
- 28. 使用openldap進行近似搜索
- 29. 如何使用attr_accessor進行搜索?
- 30. 如何使用PDO進行LIKE搜索?
你能詳細說一下嗎?搜索是否會觸發異步調用,或者這更像是一種「搜索查詢」僅應用於接收到的數據集的過濾功能? – amu
是的,搜索觸發異步調用。 –