2017-01-16 55 views
1

我想在我的angular2webapp中爲parsley寫幾個自定義驗證器。在angular2中爲歐芹編寫自定義驗證器

我該如何以最好的方式做到這一點?

我已經嘗試將它們寫入指令,並將它們添加到我想使用它們的模塊的聲明數組中。

但是由於我想在許多不同的模塊中使用相同的驗證器,我可以改爲在app.module.ts中聲明它們嗎?

當我有很多不同的自定義驗證器時,它也可能是聲明數組中很長的指令列表,這可能比其他任何一個更美觀的問題,但它也是我想盡可能避免。

我也有「import'parsleyjs';」每個組件中的聲明。這也可以移動到別的地方嗎?或者將它們放在更普遍的地方是沒有意義的,因爲它們會被包含在哪裏,哪怕它們不會被使用?

我不知道我會得到多少驗證器,但想要準備好可以在10個左右的情況。

任何想法或暗示我應該如何最好地構造這一切?

回答

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{} 

請注意,如果你在你的AppModule導入ParsleysValidatorModule,你將能夠使用驗證器中的所有組件在此模塊中,而不是在其他模塊的組件。您必須在需要驗證器的每個模塊中導入模塊。

+0

謝謝。通過這種方式,使整個過程變得更加簡單。 – Andreas

+0

你能提供一個關於每個Validator1,Validator2是如何的例子嗎? – Jordi