我有一个使用ngrx的Angular 4应用程序。目前的校长是商店的一部分。每当主体发生变化时(通常是登录或注销,但稍后可能会出现某种类型的切换用户"功能),我想更新应用程序的外观和感觉。我已经有了代码,它将添加全局CSS样式,以及替换徽标。
我不确定的部分:是应该将其作为ngrx效果,服务还是其他方式实现?
store.select( 'principal' ).subscribe(( state ) => {
this.updateCorporateIdentity( state );
} );
我目前在CorporateIdentityService中有这个,但我不满意我需要在某处注入服务才能创建它。在app.component中注入它会导致lint错误
Property 'corporateIdentityService' is declared but never used.
我相信这是合理的。另一位程序员将偶然发现该未使用的服务并将其删除。 Ngrx效应,afaik,对动作做出反应并产生新动作。我的代码不会产生新的动作。
什么" Angular方式"实现这个?
由于
答案 0 :(得分:0)
感谢您的评论,我将采用ngrx效果:
export class PrincipalEffects {
@Effect()
updateCorporateIdentityOnPrincipalChange$: Observable<Action> = this.actions$
.ofType( PrincipalActions.SET_PRINCIPAL )
.flatMap(( action: ActionWithPayload<Principal> ) => {
return this.corporateIdentityService.updateCorporateIdentity( action.payload );
} )
.map(( accountCode: string ) => this.principalActions.corporateIdentityUpdated( accountCode ) );
constructor(
private actions$: Actions,
private corporateIdentityService: CorporateIdentityService,
private principalActions: PrincipalActions ) { }
}