Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 4错误消息应链接到无效的formControl_Angular_Angular2 Forms_Angular4 Forms_Angular2 Formbuilder_Angular2 Form Validation - Fatal编程技术网

Angular 4错误消息应链接到无效的formControl

Angular 4错误消息应链接到无效的formControl,angular,angular2-forms,angular4-forms,angular2-formbuilder,angular2-form-validation,Angular,Angular2 Forms,Angular4 Forms,Angular2 Formbuilder,Angular2 Form Validation,我正在使用以下命令 1) 造模工 2) 窗体控件 我已经创建了一个错误摘要来显示表单提交中的所有错误,如果表单控件输入、无线电等无效。我想做的是,当用户单击错误消息时,他们应该被带到无效的输入字段 我知道我能做到这一点的几种方法是: 创建一个函数来设置单击的焦点 我知道这些可以工作,但我正在寻找一个角度特定的解决方案,如果存在的话。我希望通过某种方式使用表单控件名进行链接 例: 以及尝试使用[inputName]=name将导致相同的问题 正确: <input #nameInputFie

我正在使用以下命令

1) 造模工

2) 窗体控件

我已经创建了一个错误摘要来显示表单提交中的所有错误,如果表单控件输入、无线电等无效。我想做的是,当用户单击错误消息时,他们应该被带到无效的输入字段

我知道我能做到这一点的几种方法是:

  • 创建一个函数来设置单击的焦点

  • 我知道这些可以工作,但我正在寻找一个角度特定的解决方案,如果存在的话。我希望通过某种方式使用表单控件名进行链接

    例:

    以及尝试使用[inputName]=name将导致相同的问题

    正确:

    <input #nameInputField formControlName="name">
    
    <child-component [inputName]="nameInputField" [inputValidation]="name"
    
    
    
    其中一种方法是使用模板变量和ngIf:

    <form novalidate (submit)="onLoginSubmit()" [formGroup]="user">
        Username <input id="username" type="text" #username autofocus formControlName="username">
        <br><br>
        Name <input id="name" type="text" #name autofocus formControlName="name">
        <ul>
            <li (click)="name.focus()" *ngIf="user.get('username').hasError('required')">Error on username</li>
            <li (click)="username.focus()" *ngIf="user.get('name').hasError('required')">Error on name</li>
        </ul>
    </form>
    
    
    用户名
    

    名称
      用户名错误 名称错误

    name.focus是使用Id/#name还是formControlName?这在不同的组件中也会起作用吗?我的错误消息是一个组件。表单组件为每个错误生成一个。也感谢您花时间复习。“name”代表#name。至于不同的组件,让我想想:)我会尝试一下,让你们知道子组件引用父组件是否有效。这似乎是一个相当不错的解决方案。还有更好的方法吗?在子组件中工作出色。在不进行大量javascript操作的情况下传递非常有用的值。模板变量非常棒。谢谢你的帮助。非常感谢:)
    <input #nameInputField formControlName="name">
    
    <child-component [inputName]="nameInputField" [inputValidation]="name"
    
    <form novalidate (submit)="onLoginSubmit()" [formGroup]="user">
        Username <input id="username" type="text" #username autofocus formControlName="username">
        <br><br>
        Name <input id="name" type="text" #name autofocus formControlName="name">
        <ul>
            <li (click)="name.focus()" *ngIf="user.get('username').hasError('required')">Error on username</li>
            <li (click)="username.focus()" *ngIf="user.get('name').hasError('required')">Error on name</li>
        </ul>
    </form>