我对角度还很陌生,并且在理解现有代码库中的部分代码时遇到了麻烦。问题是数字1到7有一个下拉选择,并且每当用户选择7以外的数字时,Angular形式就会弹出并显示错误“ not a number”。我已经将错误追溯到这段代码,但是难以理解:
/**
* Returns a list of error messages for the parameters form.
*/
public scanParamErrors(): Array<string> {
let errors: Array<string> = [];
// Lambda function to say "show numerical errors only if the user has typed an invalid number"
let showNumberError = (control) => {
if (control.errors && control.value !== null && control.errors.number) {
return true;
}
return false;
};
// Add error messages for each field
let controls = this.form.controls;
let innerMotor = controls.innerMotor;
if (showNumberError(innerMotor)) {
errors.push('- Inner Motor ' + innerMotor.errors.number.message + '.');
}
let outerMotor = controls.outerMotor;
if (showNumberError(outerMotor)) {
errors.push('- Outer Motor ' + outerMotor.errors.number.message + '.');
}
let laserPower = controls.laserPower;
if (showNumberError(laserPower)) {
errors.push('- Laser Power ' + laserPower.errors.number.message + '.');
}
let scanDuration = controls.scanDuration;
if (showNumberError(scanDuration)) {
errors.push('- Scan Duration ' + scanDuration.errors.number.message + '.');
}
return errors;
}
此问题可能出现在前10行中,因为底部的类别与分配给用户的1-7下拉菜单选项无关。我只是提供了上下文。我感觉“控件”是指表单控件,但是我不太确定,主要问题是我不确定如何确定“ control.errors.number”。如果有人可以帮助我,将不胜感激。谢谢!
这是我的IDE中的代码(带有彩色代码):