0
特定のFormControlに対して独自の検証を作成していますが、検証関数外で定義された外部値への参照を作成する方法がわかりません。Angular2 - フォームカスタム検証 - 検証関数外の参照を作成する
CODE:
@Component({
selector: 'city-autocomplete',
template: `
<label for="incidade">Cidade/Comarca:</label>
<input type="text" class="autocomplete-imput" id="incidade"
[formControl]=inputcidade
>
`,
styleUrls: ['./city-autocomplete.component.scss']
})
export class CityAutocompleteComponent {
extenalValue :boolean = false
inputcity = new FormControl('', [this.cityValidator]);
//My Validator:
cityValidator(ctrl: AbstractControl) {
const isValid = this.extenalValue // <== this is UNDEFINED
return isValid ? null : {
cityValidator: {
valid: false
}
}
}
}
HTML:
ERROR:
にですextenalValueが未定義であることを示しています。
私が見ることができたように、抽象的なコントロールはBEFORE @Componentを実行するので、バリデータ関数の外側には何も定義できません。
私の質問:
がどのように私は、この関数外の値への参照を作成する必要がありますか?
ありがとうございました。
ありがとう、私はそれをやろうとします。 コンポーネント内でこの検証関数を作ったのは、2行か3行しかコードではなく、ここでのみ使われるからです。 私は、新しいディレクティブ/エクスポート関数を使ってアプリケーションに別のファイルを作成し、これをそのままバレル(index.ts)とモジュールの中に挿入する価値はないと考えました。 –