特定状态NGXS存储插件的自定义解串器

时间:2019-06-27 14:04:18

标签: angular ngxs

存储插件指定我可以使用自定义反序列化器。问题是它没有提供有关如何使用它的任何信息。提供的解串器是否可用于所有状态类?

我需要的是在每个州都有一个特定的解串器。

谢谢!

2 个答案:

答案 0 :(得分:2)

反序列化 NgxsStoragePluginModule 的选项之一:

@NgModule({
  imports: [
    NgxsModule.forRoot([]),
    NgxsStoragePluginModule.forRoot({
      deserialize(data) {
        return JSON.parse(data) // by default it returns parsed data
      }    
    })
  ],
})

您为所有人设置了一个。我个人没有尝试过。但是根据文档,通过这种方式,我们可以定义存储插件的选项。

答案 1 :(得分:0)

正确的方法是先定义导出的函数,否则将因AOT编译而失败。

@NgModule({
  declarations: [AppComponent],
  imports: [
    NgxsStoragePluginModule.forRoot({
      deserialize(data) {
        // Do deserialization
      },
    }),
...

此功能适用于/不具有AOT:

export function deserialize(data: any) {
  // Do deserialization
}

@NgModule({
  declarations: [AppComponent],
  imports: [
    NgxsStoragePluginModule.forRoot({
      deserialize,
    }),
...

https://github.com/ngxs/store/issues/1123#issuecomment-605933173