我将NGXS与@ngxs/storage-plugin
一起使用。当我将插件导入模块内部时,可以通过localStorage
选项将插件配置为使用sessionStorage
或storage
。
当用户在登录时选中“记住我”选项时,我的App应该使用localStorage
;而当他不想使用“记住我”选项时,则使用sessionStorage
。
有什么想法可以使用@ngxs/storage-plugin
来实现吗?
@NgModule({
imports: [
CommonModule,
NgxsModule.forRoot(STATES_MODULES, OPTIONS_CONFIG),
NgxsStoragePluginModule.forRoot({storage: '????'}),
NgxsReduxDevtoolsPluginModule.forRoot(DEVTOOLS_REDUX_CONFIG),
NgxsLoggerPluginModule.forRoot(LOGGER_CONFIG)
],
exports: [NgxsModule]
})
export class NgxsStoreModule {}
答案 0 :(得分:1)
我将使用自定义存储引擎: https://www.ngxs.io/plugins/storage#custom-storage-engine
如果您可以控制存储引擎,则可能会起作用。不知道您是否可以使用angular的DI注入商店/其他内容来判断用户是否尝试设置“ rememberMe”。
export class MyStorageEngine implements StorageEngine {
....
setItem(key: string, val: any): void {
if (rememberMe) {
// set with localStorage
} else {
// set with sessionStorage
}
}
....
}