簡體   English   中英

在 ngoninit 上調用時如何避免多次調用服務

[英]How to avoid service call more than once when called on ngoninit

我有 3 個選項卡,它們是具有服務的 3 個不同組件,單擊每個選項卡時會在頁面加載時進行服務調用,即 ngoninit。 要求就像為第一個選項卡加載選項卡數據並單擊第二個選項卡然后再次單擊返回到第一個選項卡然后不應進行第二次服務調用。 數據應通過第一次服務調用本身保留。 我怎樣才能實現它。 請幫忙

您可以將 state 的數據保存在您的服務中。 例如,您可以為此目的使用行為主題。 如果您在主題中找到數據,請使用它,否則請調用 http 來填充它。 在您的服務中執行以下操作:

 public myData: BehaviorSubject<SomeType[]> = new BehaviorSubject<SomeType[]>([]);

    constructor(private storage: Storage) { 

    }

    load(): void {

        this.storage.get('myData').then((data) => {

            this.myData.next(data);

        });

    }

訂閱組件中的主題並檢查它是否有相關數據。 其他明智的做法是調用 http 來加載它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM