[英]TypeError: Cannot read property 'username' of undefined?
我正在使用Ionic 2開發應用程序,但出現錯誤。 當我刪除[(ngModel)] =“ register.username”時,錯誤消失了。
TypeError: Cannot read property 'username' of undefined in [register.username in RegisterPage@15:19]
<ion-navbar *navbar>
<ion-title>Register</ion-title>
</ion-navbar>
<ion-content class="login-page">
<ion-list>
<div class="logo">
<img src="img/appicon.svg">
</div>
<form #signupForm="ngForm" novalidate>
<ion-item>
<ion-label floating primary>Username</ion-label>
<ion-input [(ngModel)]="register.username" ngControl="username" type="text" #username="ngForm" required>
</ion-input>
</ion-item>
<p [hidden]="username.valid || submitted == false" danger padding-left>
Username is required
</p>
<ion-item>
<ion-label floating primary>Password</ion-label>
<ion-input [(ngModel)]="register.password" ngControl="password" type="password" #password="ngForm" required>
</ion-input>
</ion-item>
<p [hidden]="password.valid || submitted == false" danger padding-left>
Password is required
</p>
<div padding>
<button (click)="onSignup(signupForm)" type="submit" primary block>Create</button>
</div>
</form>
</ion-list>
</ion-content>
register.js
import { App, Page, NavController } from 'ionic/ionic';
@Page({
templateUrl: 'build/pages/register/register.html'
})
export class RegisterPage {
constructor(nav: NavController) {
this.nav = nav;
}
onSignup(form) {
// console.log(form);
// if (form.valid) {
// this.nav.push();
// }
}
}
想知道我做錯了什么嗎? 我應該閱讀任何文件嗎? (如果需要更多信息,請告訴我)
也許您的register
對象是異步加載的。 為避免這種情況,只需使用Elvis運算符: register?.username
或在ngIf
周圍使用ngIf
:
<form #signupForm="ngForm" novalidate *ngIf="register">
<ion-item>
<ion-label floating primary>Username</ion-label>
<ion-input [(ngModel)]="register.username"
ngControl="username" type="text"
#username="ngForm" required>
</ion-input>
</ion-item>
(...)
</form>
編輯
將register
對象設置為空對象應該解決您的問題:
import { App, Page, NavController } from 'ionic/ionic';
@Page({
templateUrl: 'build/pages/register/register.html'
})
export class RegisterPage {
constructor(nav: NavController) {
this.nav = nav;
this.register = {};
}
onSignup(form) {
// console.log(form);
// if (form.valid) {
// this.nav.push();
// }
}
}
希望對您有幫助,蒂埃里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.