2017-06-05 41 views
0

我有一個跨多個路由的多頁表單。所有路線都需要與API共享的相同數據。我可以將API的響應存儲在ngrx/store之內,並使用效果觸發API調用。我的問題是關於在哪裏啓動API調用。 API調用需要在用戶進行身份驗證後進行,這發生在我訪問的第一條路線上(在訪問多頁表單的第一部分之前)。我想出了這兩個選項是:使用路由之間共享的數據填充ngrx存儲

  1. 觸發每條路線的組件內部的效果意思我只好每次我拜訪的路線時間要求的信息。當用戶未通過身份驗證時,警衛將阻止所有頁面可訪問。

  2. 收聽特效內的已驗證成功操作並向API發出請求。

我敢肯定,兩者都是完全可以接受的,並有他們的權衡。得到一些意見會很好!

回答

2

第二個將是最好的,當用戶驗證並允許使用它時,請求需要的信息ergo更有意義。如同你所說的那樣,在守衛的內部,你應該派遣行動去加載信息,然後再返回true/of(true)來表明路線可以被激活。這種天真的做法會觸發一個信息請求,試圖啓動守護路線。

+0

我在第二個選項旁邊。另外,在加載數據的同時,您會建議在啓動路由之前使用警衛等待或僅檢查API是否在每個路由組件內部加載並顯示微調器或其他內容? – maddockst

+0

通常我會在信息標記爲加載時顯示一個微調框:true在我的商店內。在我看來,這與將要呈現的組件與所請求的信息所具有的信息的功能/特性/關係密切相關。 –

+0

我明白你的觀點。感謝您的指導! – maddockst

相關問題