web-dev-qa-db-ja.com

Angular 2パラメーター付きのカスタムバリデーター

作成するにはどうすればAngular 2?で独自のmaxLengthバリデーターを使用できますか?すべての例では、 'required'に似たバリデーターを使用できます。コントロール自体。さらにパラメータを渡すにはどうすればよいですか?

これが私が持っているサンプル検証ツールです。パラメータとして番号5を渡すように変更するにはどうすればよいですか?

export class MyValidators {
    static minValue(control:Control): {[s: string]: boolean} {
        var num = +control.value;
        if (isNaN(num) || num < 5 ) { return {"minValue": true}; }
        return null;
    }
}

ありがとうございました。

21
rook

これがサンプルです。検証する数値を渡す最小値バリデーターです。

import {Control} from 'angular2/common';

export const minValueValidator = (min:number) => {
  return (control:Control) => {
    var num = +control.value;
    if(isNaN(num) || num < min){
      return {
         minValue: {valid: false}
      };
    }
    return null;
  };
};

詳細は Custom Validators 公式ドキュメントページにあります。

29
TGH

MinValueValidatorの例は基本的に、カスタムバリデーターにファクトリを使用できることを示しているため、次のようになります。

static minValue = (num: Number) => {
    return (control:Control) => {
         var num = control.value;
         if (isNaN(num) || num < 5 ) { return {"minValue": true}; }
         return null;
    }
}

私の場合、FormControlではなくControlを使用します

import { FormControl } from '@angular/forms';
2
Nuke Goldstein