NgForm 控件的问题按字母顺序排列 Angular
Issue with NgForm Controls arrange in alphabetical order Angular
我有一个函数 formErrorMessage,它将循环遍历 NgForm 中的表单控件并检查它是否有错误并将错误消息附加到数组。但是,错误消息的排列顺序与我的表格不一样,因为表格控件是按字母顺序排列的。
formErrorMessage(formControls : { [key: string]: AbstractControl; }){
var aryErrors: Array<{ [key: string] : string }> = [];
//loop tru the controls
Object.keys(formControls).forEach(key => {
//if has errors
var objErrors = formControls[key].errors;
var formObj = key;
if(objErrors){
//loop tru the errors
Object.keys(objErrors).forEach(key => {
//retrive the relevant message from ValidationFormsService
aryErrors[formObj] = this.vf.errorMessages[formObj][key];
});
}
});
return aryErrors;
}//end formErrorMessage
我知道对象不知道 NgForm 控件的顺序,所以我创建了一个表单字段数组并遍历该数组并检查 NgForm 错误以保留表单字段排列。
服务中
public aryFormFields : Array<{[key : string] : any}> = [
{"membID" : ''},
{"salutation": ''},
{'name': ''},
{'referralSource': ''},
{'referralID': ''},
{'mobileNo': ''},
{'email': ''},
{'addr1': ''},
{'addr2': ''},
{'addr3': ''},
{'postalCode': ''},
{'membType': ''},
{'startDate': ''},
{'endDate': ''},
{'entitleCredit': ''},
{'lastCreditUseDate': ''},
{'lastCreditUseAmt': ''},
{'totalCreditBalance': ''},
{'serviceAdvisorID': ''},
{'pdpaConcern': ''},
{'pdpaSMS': ''},
{'pdpaEmail': ''},
{'pdpaPhone': ''},
];
在表单验证函数中
const formFields = this.memberService.aryFormFields;
let aryErrors: Array<{[key : string] : any}> = [];
for(var i =0; i < formFields.length; i++){
//loop tru the empty aryErrors
Object.keys(formFields[i]).forEach(key=> {
var objErrors = formControls[key].errors;
var formObj = key;
//if has error
if (objErrors) {
//loop tru the errors
Object.keys(objErrors).forEach(key => {
//retrive the relevant message from ValidationFormsService
if (this.vf.errorMessages.hasOwnProperty(formObj)) {
aryErrors[i]={ [formObj] : this.vf.errorMessages[formObj][key]};
}
else {
//if not exist, using formObj
aryErrors[i]={ [formObj] : this.toCamelCase(formObj) + " is "+ key +"!"};
}
});
}
});
}//for
return aryErrors;
我有一个函数 formErrorMessage,它将循环遍历 NgForm 中的表单控件并检查它是否有错误并将错误消息附加到数组。但是,错误消息的排列顺序与我的表格不一样,因为表格控件是按字母顺序排列的。
formErrorMessage(formControls : { [key: string]: AbstractControl; }){
var aryErrors: Array<{ [key: string] : string }> = [];
//loop tru the controls
Object.keys(formControls).forEach(key => {
//if has errors
var objErrors = formControls[key].errors;
var formObj = key;
if(objErrors){
//loop tru the errors
Object.keys(objErrors).forEach(key => {
//retrive the relevant message from ValidationFormsService
aryErrors[formObj] = this.vf.errorMessages[formObj][key];
});
}
});
return aryErrors;
}//end formErrorMessage
我知道对象不知道 NgForm 控件的顺序,所以我创建了一个表单字段数组并遍历该数组并检查 NgForm 错误以保留表单字段排列。
服务中
public aryFormFields : Array<{[key : string] : any}> = [
{"membID" : ''},
{"salutation": ''},
{'name': ''},
{'referralSource': ''},
{'referralID': ''},
{'mobileNo': ''},
{'email': ''},
{'addr1': ''},
{'addr2': ''},
{'addr3': ''},
{'postalCode': ''},
{'membType': ''},
{'startDate': ''},
{'endDate': ''},
{'entitleCredit': ''},
{'lastCreditUseDate': ''},
{'lastCreditUseAmt': ''},
{'totalCreditBalance': ''},
{'serviceAdvisorID': ''},
{'pdpaConcern': ''},
{'pdpaSMS': ''},
{'pdpaEmail': ''},
{'pdpaPhone': ''},
];
在表单验证函数中
const formFields = this.memberService.aryFormFields;
let aryErrors: Array<{[key : string] : any}> = [];
for(var i =0; i < formFields.length; i++){
//loop tru the empty aryErrors
Object.keys(formFields[i]).forEach(key=> {
var objErrors = formControls[key].errors;
var formObj = key;
//if has error
if (objErrors) {
//loop tru the errors
Object.keys(objErrors).forEach(key => {
//retrive the relevant message from ValidationFormsService
if (this.vf.errorMessages.hasOwnProperty(formObj)) {
aryErrors[i]={ [formObj] : this.vf.errorMessages[formObj][key]};
}
else {
//if not exist, using formObj
aryErrors[i]={ [formObj] : this.toCamelCase(formObj) + " is "+ key +"!"};
}
});
}
});
}//for
return aryErrors;