2017-09-18 7 views
0

私のフォームのバリデータをカスタマイズしようとしています。バリデータには2つのパラメータがあります。最初のパラメータはポイントの前の桁数で、2番目のパラメータはポイントの後の桁数です。Angular2:2つのパラメータを持つカスタムバリデータ

new RegExp('^[0-9]{0,' + a + '}([,][0-9]{0,' + b + '})?$') 

https://plnkr.co/edit/v4sWLGRHFijvQH6DfRPa?p=preview

しかし、フォームが正常に動作しない入力に入力中に、私は正規表現に従わない場合、メッセージは表示されません。そして、私は正規表現を作るためにこれらのパラメータを使用します。そして、私はどのように私は2つのパラメータを使用してテンプレート駆動型の指示を使用して検証することができないのか分かりません。

ヘルプしてください

+0

、私はあなたのカスタム検証ディレクティブは、アプリモジュール内で宣言されているとは思わないので、上で取り上げ取得されることはありません形。 また、1つのパラメータ、 '16、6'だけをバリデータに渡していますが、これらの値は正しく解析されていないようです。 カスタムオプションではなく、組み込みの 'pattern'バリデーターを使って正規表現を直接使うことも考えられます。 –

答えて

1

は、あなたのカスタムinput.componentに@Inputなく@Input()を持っているので、ちょうど()を追加し、それが正常に動作します。それはなるだろう:plunkrで簡単に見から

//Placeholders for the callbacks which are later provided //by the Control Value Accessor private onTouchedCallback:() => void = noop; private onChangeCallback: (_: any) => void = noop; @Input() inputPattern; //get accessor

+0

エラーを修正しましたが、コンポーネントはまだ検証しません – kipris

関連する問題