/ / Angularの定義済みリストと@Input()を一致させる - 角度、検証、タイプスクリプト、入力

角度角、バリデーション、タイスクリプト、入力で定義されたリストに@Input()をマッチさせる

ユーザー入力がエントリのホワイトリストにあるかどうかを確認するためのベストプラクティスは何ですか?

export class myClass {
@Input() type: string;
}

設定するには type それが定義済みリストにある場合にのみ可能であるべきで、そうでなければそれは空であるべきです。角度やタイプスクリプトに共通の方法はありますか?

回答:

回答№1は1

プライベートインスタンスフィールドとgetter / setterの組み合わせを使用します。 @Input。このような:

export class myClass {
private validType: string;

@Input()
public set type(value: string) {
if(this.validate(value)) {
this.validType = type;
} else {
this.validType = "";
}
}

public get type() {
return this.validType;
}

private validate(value: string) {
// do your validation here
return true;
}
}

これにより、入力プロパティが変更されるたびに、それが検証メソッドであることが確認されます。 validate この例の名前として)そして、あなたが「typeプロパティを使用しているなら、あなたは常に検証済みプロパティを取得するでしょう validType.

フォーム入力を処理している場合は、独自に定義する必要があります。 バリデーター そのようなタスクのためにそれをフォームフィールドに適用します。