无法访问 Angular 8 中父子组件关系中的父 formControl 对象更改

我创建了一个父组件,如下所示:


<form [formGroup] = "cardForm">

<app-inputvalidator [controls] = "cardForm.get('name')"></app-inputvalidator>  

</form>

父 ts 文件


import { Component, OnInit } from '@angular/core';

import { FormGroup, FormControl,Validators } from '@angular/forms';


@Component({

  selector: 'app-card-form',

  templateUrl: './card-form.component.html',

  styleUrls: ['./card-form.component.css']

})


export class CardFormComponent implements OnInit {

  nameFormControl ;


   cardForm =  new FormGroup({

    name: new FormControl('', [Validators.minLength(5),Validators.maxLength(25)])

  });




  constructor() {

   }


 ngOnInit(): void {

     this.nameFormControl = this.cardForm.get('name');

            }


}

我将 nameFormControls 传递给子组件并在模板和类中访问它,如下所示:


输入验证器.ts


 import { Component, OnInit, Input } from '@angular/core';

 import { FormControl} from '@angular/forms';


 @Component({

  selector: 'app-inputvalidator',

  templateUrl: './inputvalidator.component.html',

  styleUrls: ['./inputvalidator.component.css']

})

 export class InputvalidatorComponent implements OnInit {

 @Input() controls: FormControl;


 constructor() {


 }


 ngOnInit(): void {

 }

}


输入验证器.html


  <input [formControlName] = "controls"  

  <br>

  <div>{{ controls.errors | json}}</div> 

该项目已成功编译,没有错误。


我将controls.errors 的值设置为始终为空。为什么当名称输入框中的值发生变化时,无法使用字符串插值打印对象controls.errors?


Helenr
浏览 88回答 1
1回答

互换的青春

你得到 null 因为你没有放置必需的验证器,如果有值并且该值无效,则min,maxLength验证器将返回错误,如果该值为 null 或空字符串,这将被视为有效
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5