【发布时间】:2017-04-11 09:32:59
【问题描述】:
我需要将一个对象数组传递给 a2 自定义验证器,然后我想根据该数组中的记录验证模板驱动的表单字段的值。
但是我无法在验证器中检索对象。
我唯一能看到的是它的字符串名称。
感谢任何帮助。
<label class="btn btn-default btn-sm"
[(ngModel)]="krediHesaplamaModel.radioModelKrediTur" name="krediHesaplamaModel.radioModelKrediTur"
btnRadio="0"
(click)="onRadioButtonKrediHesaplamaTurChange()" krediTuruValidator="this.krediList" >
import { Directive, forwardRef, Attribute } from '@angular/core';
import { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';
import {Kredi} from '../kredi';
@Directive({
selector: '[krediTuruValidator][formControlName],[krediTuruValidator][formControl],[krediTuruValidator][ngModel]',
providers: [{ provide: NG_VALIDATORS, useExisting: forwardRef(() => KrediTuruValidator), multi: true },
]
})
export class KrediTuruValidator implements Validator {
constructor( public krediTuruValidator: Kredi[]) { }
validate(c: AbstractControl): { [key: string]: any } {
console.log('KL' + this.krediTuruValidator[0].krediTuru); //UNDEFINED
let v = c.value;
return null;
}
}
【问题讨论】:
-
@Attribute('krediTuruValidator')正在返回一个string值,我想您必须先将其解析为 JSON,然后再执行this.krediTuruValidator[0].krediTuru -
感谢您的快速响应。JSON.parse(this.krediTuruValidator) 抛出一个错误,指出无法将 Kredi[] 类型的参数分配给字符串。
标签: validation angular typescript