本地和会话存储之间的NGXS存储插件更改

问题描述 投票:1回答:1

我在@ngxs/storage-plugin中使用NGXS。当我将插件导入模块时,可以通过localStorage选项将插件配置为使用sessionStoragestorage

当用户登录时选中“记住我”选项时,我的应用程序应使用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 {}

angular local-storage session-storage ngxs
1个回答
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
    }
  }
  ....
}
© www.soinside.com 2019 - 2024. All rights reserved.