2016-10-14 1 views
1

私はカスタムコントロールコンポーネントを書きましたが、どのバリデーターがセットされているのかを知りたいと思います。どのようなバリデーターが設定されているかを確認したいので、例えば、必要なフィールドに*を追加することができます。私はテンプレート駆動型を使用しています。Angular2はフォームコントロールでバリデーターを設定できますか?

これは可能ですか?

マイコンポーネント:

@Component({ 
    selector: 'input-text2', 
    templateUrl: './input-text2.component.html', 
    styleUrls: ['/input-base2.scss', './input-text2.component.scss'], 
    providers: [ 
     { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: InputText2Component } 
    ] 
}) 
export class InputText2Component extends InputBase2 implements ControlValueAccessor, OnInit { 

    private ngControl: NgControl; 


    value: string; 
    valueChange: (value: any) => void; 
    _onTouched: (value: any) => void; 

    constructor(private injector: Injector) { 
     super(); 
    } 

    ngOnInit(): void { 
     this.ngControl = this.injector.get(NgControl); 
    } 

    ..//other methods 
} 

plunker

Second plunker

+0

、最小完全、かつ検証例を追加してください、http://stackoverflow.com/help/mcve – Roy

答えて

1

私はあなたのコンポーネントにこれらのコンストラクタの依存関係を追加すると、あなたのバリデータを取得するべきだと思います。

@NgModule({ 
    imports: [ BrowserModule, FormsModule, ReactiveFormsModule ], 
constructor(@Optional() @Inject(NG_VALIDATORS) private validators, 
      @Optional() @Inject(NG_ASYNC_VALIDATORS) private validators) {} 

FormsModuleは、これらのトークンをエクスポートする必要があります。

Plunker example

+0

こんにちは、私はそれが仕事を得ることができないも参照してください。私は自分のコンポーネントを追加しました。私に例を教えてもらえますか? –

+0

Plunkerにあなたのコード(最小限のコード)を提供できますか?そして、私はそれを完成させようとします。 Plunkerエディタの "new"ボタンは、すぐに使用できるAngular2 TSテンプレートを提供します。 –

+0

私はplunkerリンクを追加しました –

関連する問題