2017-05-25 70 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); 
    } 
}