尝试理解一小段代码-尝试调试

时间:2019-07-25 19:30:56

标签: angular

我对角度还很陌生,并且在理解现有代码库中的部分代码时遇到了麻烦。问题是数字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中的代码(带有彩色代码):

code screenshot

0 个答案:

没有答案