私はサービスから得ているチーム名のリストを持っています。リアクションフォームを使用して新しいチームを作成する際に、チーム名テキストボックスにカスタムバリデータを追加して、その名前が既に存在するかどうかを確認したいと思います。どのように私にそれを行う方法を教えてくださいできますか?この場合、バリデータを追加することは可能ですか?反応型(モデル駆動型)の制御値を、angular2の既存の値と重複しているかどうかを検証する方法は?
1
A
答えて
2
ここでは簡単な例を示します。以下はapp.component.ts
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, FormControl } from '@angular/forms';
import { CustomValidator } from './custom-validators';
const prevNames = ['hector', 'steve', 'adam', 'peter'];
@Component({
selector: 'app-root',
template: `
<div [formGroup]="newName">
<input formControlName="newName">
</div>`,
styleUrls: [`./app.component.css`]
})
export class AppComponent implements OnInit {
newName: FormGroup;
constructor(private fb: FormBuilder) { }
ngOnInit() {
this.newName = this.fb.group({
newName: this.fb.control('',CustomValidator.checkNamesMatched(prevNames))
});
} // End Of Init
} // End of Class
あなたのバリデータはフォームコントロールで2番目の引数として行くと、あなたのバリの引数として名前のあなたの配列を挿入しています。 配列に名前のリストがあるとします。以下は、カスタムvalidators.ts
あるexport class CustomValidator {
static checkNamesMatched(arrayOfNames: string[]) {
return (control) => {
let matched = false;
arrayOfNames.forEach((value) => {
if (value.toLowerCase().trim() === control.value.toLowerCase().trim()) {
return matched = true;
}
});
return (!matched) ? null : { checkNamesMatched: true };
};
} // End of method
} // End of Class
それは価値のと等しい場合と見て(同様小文字と正確に比較することで終わるのいずれかから空白を削除するなど)arrayOfNamesの各要素を通過します、あなたのバリ制御。一致していない場合は、nullを返します(そうでない場合はエラーを返します)。そうでなければ、エラーが返されます。コンポーネントとモジュールで必要なインポートをすべて実行してください。それが役に立てば幸い!ちょうどその場合のapp.moduleは以下の通りです。
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { ReactiveFormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
ReactiveFormsModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
関連する問題
- 1. 検証ツールモデル駆動型(反応型)フォーム
- 2. モデル駆動型(反応性)のngtypeaheadに値を設定する
- 3. モデル駆動型/反応型:モデルからフォームグループへの自動マッピング?
- 4. Angular2モデル駆動型と事前設定済みの値
- 5. Angular2モデル駆動型フォーム
- 6. Angular2モデル駆動型バリデーターパターン
- 7. Angular2 - console.logでモデル駆動型のデータを表示する方法
- 8. Angular2テンプレート駆動型:カスタムフォームコントロールのフィールド検証を作成する方法は?
- 9. Angular2でモデル駆動型のカスタムバリデータディレクティブを書く方法は?
- 10. Ionic 2 - モデル駆動型の設定値
- 11. Angular2反応型のデフォルトの入力値
- 12. モデル駆動型とテンプレート2型で駆動するテンプレート
- 13. 反応したネイティブのTextInput値を検証する方法は?
- 14. Angular2反応型:* ngIf内のフィールドを検証
- 15. ASP.NET MVCでのデータ駆動型検証
- 16. Angular 2モデル駆動型の検証情報にアクセスしますか?
- 17. モデル駆動型のアクセスアレイ
- 18. モデルを検証する方法asp.net core web apiを使用してboolデータ型の値に依存する
- 19. 角型4でモデル駆動型で検証エラーが表示されない
- 20. Primeng:モデル駆動型グループのキーボードでドロップダウン値を選択してください
- 21. 私はこのようなフォームコントロールを持っていますモデル駆動型フォームと検証
- 22. モデル駆動型フォームのformControlのプログラム設定値
- 23. Angular2反応型ドロップダウン
- 24. 列挙型の値が重複しないようにする方法は?
- 25. Flexモデル駆動開発から制御生成コードをどのようにしてバージョンアップするのですか?
- 26. 角2反応型 - 反応型のフォーム配列でドロップダウン値を選択する
- 27. 反応型のコントロールに角2の値があるかどうかを確認する方法
- 28. Angular2(データ駆動型)のフォームバリデータとしてプロパティを使用
- 29. モデル駆動型の "値アクセサーがありません"
- 30. Angular2 - 反応型と複数のチェックボックスが正しく動作しない
私には同様の問題があります –
誰でも助けてください。 –