属性 'xxxx' 不存在于类型 '{ [key: string]: AbstractControl; }'
Property 'xxxx' does not exist on type '{ [key: string]: AbstractControl; }'
import { FormGroup } from '@angular/forms';
export class MasterVendorFormContactComponent implements OnInit {
@Input() formContactGroup: FormGroup;
// rest of the code
}
<fieldset [formGroup]="formContactGroup" class="master-vendor-form-contact">
<md-input-container class="master-vendor-form-contact__phone"
[dividerColor]="formContactGroup.controls.phone?.valid ? 'default' : 'warn'">
<input mdInput placeholder="Enter phone" formControlName="phone">
<md-hint align="end"
*ngIf="!formContactGroup.controls.phone?.valid">
Vendor phone number must be in (XXX) XXX-XXXX format
</md-hint>
</md-input-container>
<!-- Rest of the code -->
</fieldset>
使用 aot 编译此代码时出现以下错误:
angular_app/src/$$_gendir/app/master-vendors/master-vendor-form-contact/master-vendor-form-contact.component.ngfactory.ts (465,73): Property 'phone' does not exist on type '{ [key: string]: AbstractControl; }'.
angular_app/src/$$_gendir/app/master-vendors/master-vendor-form-contact/master-vendor-form-contact.component.ngfactory.ts (465,143): Property 'phone' does not exist on type '{ [key: string]: AbstractControl; }'.
angular_app/src/$$_gendir/app/master-vendors/master-vendor-form-contact/master-vendor-form-contact.component.ngfactory.ts (476,77): Property 'phone' does not exist on type '{ [key: string]: AbstractControl; }'.
angular_app/src/$$_gendir/app/master-vendors/master-vendor-form-contact/master-vendor-form-contact.component.ngfactory.ts (476,147): Property 'phone' does not exist on type '{ [key: string]: AbstractControl; }'.
我试过采用这种方法:
不要用form.controls.controlName,用form.get(‘controlName’)
但是我这里有 formContactGroup,所以它似乎不适合我。
有两个选项,可以更新到最新的typescript版本。由于 version 2.2 他们允许带有字符串索引签名的类型使用点符号。
或者您可以更改模板,这更有意义,因为这是正确的做法:) documentation:
<md-input-container [dividerColor]="formContactGroup.get('phone').valid ? 'default' : 'warn'">
import { FormGroup } from '@angular/forms';
export class MasterVendorFormContactComponent implements OnInit {
@Input() formContactGroup: FormGroup;
// rest of the code
}
<fieldset [formGroup]="formContactGroup" class="master-vendor-form-contact">
<md-input-container class="master-vendor-form-contact__phone"
[dividerColor]="formContactGroup.controls.phone?.valid ? 'default' : 'warn'">
<input mdInput placeholder="Enter phone" formControlName="phone">
<md-hint align="end"
*ngIf="!formContactGroup.controls.phone?.valid">
Vendor phone number must be in (XXX) XXX-XXXX format
</md-hint>
</md-input-container>
<!-- Rest of the code -->
</fieldset>
使用 aot 编译此代码时出现以下错误:
angular_app/src/$$_gendir/app/master-vendors/master-vendor-form-contact/master-vendor-form-contact.component.ngfactory.ts (465,73): Property 'phone' does not exist on type '{ [key: string]: AbstractControl; }'.
angular_app/src/$$_gendir/app/master-vendors/master-vendor-form-contact/master-vendor-form-contact.component.ngfactory.ts (465,143): Property 'phone' does not exist on type '{ [key: string]: AbstractControl; }'.
angular_app/src/$$_gendir/app/master-vendors/master-vendor-form-contact/master-vendor-form-contact.component.ngfactory.ts (476,77): Property 'phone' does not exist on type '{ [key: string]: AbstractControl; }'.
angular_app/src/$$_gendir/app/master-vendors/master-vendor-form-contact/master-vendor-form-contact.component.ngfactory.ts (476,147): Property 'phone' does not exist on type '{ [key: string]: AbstractControl; }'.
我试过采用这种方法:
不要用form.controls.controlName,用form.get(‘controlName’)
但是我这里有 formContactGroup,所以它似乎不适合我。
有两个选项,可以更新到最新的typescript版本。由于 version 2.2 他们允许带有字符串索引签名的类型使用点符号。
或者您可以更改模板,这更有意义,因为这是正确的做法:) documentation:
<md-input-container [dividerColor]="formContactGroup.get('phone').valid ? 'default' : 'warn'">