在 angular2 中为 Parsley 编写自定义验证器

Writing custom validators for Parsley in angular2

我想在 angular2 webapp 中为 parsley 编写一些自定义验证器。

我怎样才能以最好的方式做到这一点?

我尝试过将它们写成指令并将它们添加到我要使用它们的模块中的声明数组中。

但是因为我想在许多不同的模块中使用相同的验证器,我可以改为在 app.module.ts 中声明它们吗?

当我有很多不同的自定义验证器时,声明数组中的指令列表也可能很长,这可能是一个比其他任何问题都更美观的问题,但如果可能的。

我在每个组件中也有 "import 'parsleyjs';" 语句。这也可以移到其他地方吗?或者将它们放在更通用的位置是否没有意义,因为即使在不使用它们的地方也会包含它们?

我不知道我最终会得到多少个验证器,但我想为可能达到 10 个左右的情况做准备。

关于我应该如何最好地构建它的任何想法或提示?

如果我理解正确你想做什么,你可以写一个 ParsleyValidatorsModule 在你声明和导出所有验证器的地方。

通过导出它们,您可以在其他模块中重用它们,只需导入 ParsleyValidatorsModule

@NgModule({
declarations: [Validator1, Validator2],
exports: [Validator1, Validator2]
})
export class ParsleysValidatorModule{}


@NgModule({
  imports: [ParsleysValidatorModule] //you can now use your directives validators in all the components of this module
})
export class SomeOtherModule{}

请注意,如果您在 AppModule 中导入 ParsleysValidatorModule,您将能够在该模块的所有组件中使用验证器,但不能在其他模块的组件中使用。您必须在每个需要验证器的模块中导入该模块。