在我的角度應用程序中,我有一個全局側邊欄導航指令,其中包括爲用戶提供的全局搜索(帶有一堆條件,而不僅僅是文本字段)。角度側邊欄搜索指令
在搜索時,我想用搜索結果顯示一個頁面。
現在,側邊欄在主應用程序html中定義,共享搜索結果數據的最佳方式是什麼? 側邊欄應該負責執行搜索嗎?如果是這樣,我怎麼把它的數據分享給特定的頁面結果呢? 另一方面,或許具體的搜索結果頁面應該負責這些數據?如果是這樣,在執行搜索時如何將它與側邊欄搜索參數連接起來?
這種情況下的任何最佳實踐表示讚賞。
在我的角度應用程序中,我有一個全局側邊欄導航指令,其中包括爲用戶提供的全局搜索(帶有一堆條件,而不僅僅是文本字段)。角度側邊欄搜索指令
在搜索時,我想用搜索結果顯示一個頁面。
現在,側邊欄在主應用程序html中定義,共享搜索結果數據的最佳方式是什麼? 側邊欄應該負責執行搜索嗎?如果是這樣,我怎麼把它的數據分享給特定的頁面結果呢? 另一方面,或許具體的搜索結果頁面應該負責這些數據?如果是這樣,在執行搜索時如何將它與側邊欄搜索參數連接起來?
這種情況下的任何最佳實踐表示讚賞。
步驟,讓您更光明的前途:
main
,sidebar
,results
翻譯他們每個人之間的數據有一個主要的SearchResultsService
即:
a)爲每個鍵獲取sidebar
過濾器的集合true
或false
(鍵爲GET參數的名稱,將用於傳遞到後端的搜索API);
b)根據results
模塊方法序列化或反序列化數據;
c)做一些分頁;
d)如果您需要(無限滾動功能),則保存或甚至緩存數據;
sidebar
和results
將意見main
(子模塊),所以如果需要的話,你將能夠分享主控制器方法當我正面臨着實現這樣的模塊我的(小白方式)
已使用black magic轉義$watch
和$on
事件系統。如果你還年輕 - 然後使用$on
,這將允許您通知每個模塊有關重要的事情(如分頁更改,項目選擇等),並保持它們在同一時間分開。
您可以自由地將現有的側邊欄放在主模塊中,但我已經從指令移動到使用自己的控制器和模板進行查看。
指令用於粘貼功能的可重用項目。但是,dat sidebar顯然應該被定義爲應用程序(aka模塊)的獨立部分,但不是指令。
P.S.保持你的控制器簡單。 谷歌名單:
角度服務是使用依賴注入(DI)連線在一起的可替代對象。您可以使用服務在整個應用中組織和共享代碼。
你肯定在側邊欄的指令,你的做法?對我來說,它是聖潔莫莉獨立的功能和_search_模塊。回答我這個問題 - 你使用'ui-router'嗎? – Appeiron
是的,我使用ui路由器。你能提出更好的建議嗎? – shayy