我想在parsley
angular2
中为webapp
写一些自定义验证器。
我怎样才能以最好的方式做到这一点?
我已经尝试将它们编写为指令并将它们添加到我想要使用它们的模块中的声明数组中。
但是,由于我想在许多不同的模块中使用相同的验证器,我可以改为在app.module.ts
中声明它们吗?
当我有很多不同的自定义验证器时,它也可能是声明数组中很长的指令列表,这可能是一个比其他任何问题都更美观的问题,但如果可能的话,它也是我想要避免的。
我也有“import”parsleyjs';“每个组件中的声明。这也可以移到其他地方吗?或者把它们放在一个更普通的地方是没有意义的,因为它们会被包含在它们不被使用的地方吗?
我不知道我最终会有多少验证器,但是想要为10左右的情况做好准备。
关于我应该如何最好地构建它的任何想法或提示?
答案 0 :(得分:0)
如果我理解了您正在尝试做的事情,您可以写一个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{}
请注意,如果您导入ParsleysValidatorModule
中的AppModule
,则可以在此模块的所有组件中使用验证器,但不能在其他模块的组件中使用验证器。您必须在需要验证器的每个模块中导入模块。