[英]Typescript error Property does not exist on type
我是angularjs 2和ionic 2的新手。我正在使用帶有Validators,FormControl和FormGroup的angularjs表單。 當我使用ionic serve --lab執行項目時,一切都很好。 但是當我構建該項目時,它會給出錯誤:類型上不存在屬性“用戶名”。
login.ts
import { Component } from '@angular/core';
import { LoadingController, NavController } from 'ionic-angular';
import { AuthService } from '../../service/authService';
import {Validators, FormBuilder, FormGroup, FormControl } from '@angular/forms';
@Component({
selector: 'page-login',
templateUrl: 'login.html'
})
export class LoginPage {
user: any;
submitAttempt: boolean = false;
slideTwoForm : FormGroup;
constructor(public navCtrl: NavController,
public authService: AuthService,
public loadingCtrl: LoadingController,
private formBuilder: FormBuilder) {
this.slideTwoForm = formBuilder.group({
username: ['', Validators.compose([Validators.minLength(5), Validators.required])],
description: ['', Validators.required],
age: ['']
});
}
logForm() {
if (!this.slideTwoForm.valid) {
this.submitAttempt = true;
}
}
}
的login.html
<ion-content padding>
<form [formGroup]="slideTwoForm" (ngSubmit)="logForm()" novalidate>
<ion-item>
<ion-label floating>Username</ion-label>
<ion-input #username formControlName="username" type="text"></ion-input>
</ion-item>
<ion-item *ngIf="!slideTwoForm.controls.username.valid && submitAttempt">
<p>Please enter a valid name.</p>
</ion-item>
<ion-item>
<ion-label>Description</ion-label>
<ion-textarea formControlName="description"></ion-textarea>
</ion-item>
<ion-item>
<ion-label floating>Age</ion-label>
<ion-input formControlName="age" type="number"></ion-input>
</ion-item>
<ion-item *ngIf="!slideTwoForm.controls.age.valid && submitAttempt">
<p>Please enter a valid age.</p>
</ion-item>
<button ion-button type="submit">Submit</button>
</form>
</ion-content>
一切都很好,直到我運行ionic build android命令生成apk文件。
有人可以告訴我為什么我收到這些錯誤?
我也引用了這個鏈接: 屬性在類型上不存在。 TypeScript但它無法幫助我:
Ionic2在構建到android時提前使用編譯。 AoT要求:
A)要公開的屬性
B)要在組件中聲明的html中提到的屬性。
所以要修復你的問題聲明public username:string; 在組件中,並聲明您在表單中訪問的其他名稱。
或者......在html中,您可以編寫formControlName ='user.username'並使用您已聲明的屬性。
不要忘記在組件中聲明你的elementref
<ion-content padding>
<form [formGroup]="slideTwoForm" (ngSubmit)="logForm()" novalidate>
<ion-item>
<ion-label floating>Username</ion-label>
<ion-input #username formControlName="username" type="text"></ion-input>
</ion-item>
<ion-item *ngIf="!slideTwoForm.controls["username"].valid && submitAttempt">
<p>Please enter a valid name.</p>
</ion-item>
<ion-item>
<ion-label>Description</ion-label>
<ion-textarea formControlName="description"></ion-textarea>
</ion-item>
<ion-item>
<ion-label floating>Age</ion-label>
<ion-input formControlName="age" type="number"></ion-input>
</ion-item>
<ion-item *ngIf="!slideTwoForm.controls["age"].valid && submitAttempt">
<p>Please enter a valid age.</p>
</ion-item>
<button ion-button type="submit">Submit</button>
</form>
</ion-content>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.