2017-05-25 71 views
1

我想跟蹤@ ngrx/store中某個特定密鑰的訂閱次數。我不想在訂閱的每個組件中重複代碼,但希望以某種方式掛鉤到select()。我不認爲@effects適用於此,因爲我沒有查看已分派的操作。我可以在ngrx商店「掛鉤」訂閱

有沒有人有任何想法,我會如何實現呢?

回答

0

假設訂閱密鑰意味着從商店中選擇一些商品。 您可以嘗試使用自己的服務擴展商店,然後使用它覆蓋選擇方法,如下所示:

@Injectable() 
class CountingStore<S> extends Store<S> { 
    public keyCount: {[key:string]: number} = {}; 

    public select = (key: string) => { 
     keyCount[key] = keyCount[key] ? keyCount[key] + 1 : 1; 
     return super.select(key); 
    } 
}