2017-08-09 20 views
2

私はAngular 2を初めて使っています。FormBuilder & FormGroupを使用して簡単なフォームを作成しようとしています。しかし、何らかの理由で私がusernameフィールドに入力したものが、コンポーネントから更新されていないため、Submitボタンをクリックしても新しい値が表示されません。私のビューとコンポーネントのコードは以下の通りです。誰かが問題点を教えてください。FormGroupアイテム入力がIonic 2で更新されない

login.ts

import { Component} from "@angular/core"; 
import {FormBuilder, FormGroup, Validators} from "@angular/forms"; 

@Component({ 
selector:"login-page", 
templateUrl: "login.html" 
}) 

export class LoginPage { 
    loginForm : FormGroup; 
    constructor(formBuilder :FormBuilder) { 
     this.loginForm = formBuilder.group({ 
      'username':[ 
       '', 
       Validators.required 
      ] 
     }); 
    } 

    validate() : boolean { 
     if (this.loginForm.valid) { 
      return true; 
     } 
    } 
    submit() : void { 
     if (!this.validate()) { 
      console.info("Invalid input") 
     } 
     let control = this.loginForm.controls['username'].value; 
     console.log(control); 
    } 
} 

login.htmlと

<ion-header style="text-align:center"> 
    <ion-navbar> 
    <ion-title>Please login</ion-title> 
    </ion-navbar> 
</ion-header> 


<ion-content padding> 

    <h3 style="text-align:center">Welcome to your first Ionic app!</h3> 


    <form class ="list" [formGroup]="loginForm" (ngSubmit)="submit()"> 
     <ion-item class="loginInput center"> 
      <ion-label floating>Email</ion-label> 
      <ion-input type="text" name='username' ngControl="username" ></ion-input> 
     </ion-item> 
     <div class="loginBtn"><button style="width: 140px" ion-button type="submit">Login</button></div> 
    </form> 

</ion-content> 

答えて

2

変更

<ion-input type="text" name='username' ngControl="username" ></ion-input>

<ion-input type="text" [formControl]="loginForm.controls['username']" ></ion-input> 
+0

おかげ@Prera​​k、その作業あなたの推奨される変更 – Dilip

1

以下の変更を行う必要があります。

.TS

<form class ="list" [formGroup]="loginForm" (submit)="submit(loginForm)"> 
     <ion-item class="loginInput center"> 
      <ion-label floating>Email</ion-label> 
      <ion-input type="text" name='username' formControlName="username" ></ion-input> 
     </ion-item> 
     <div class="loginBtn"><button style="width: 140px" ion-button type="submit">Login</button></div> 
    </form> 
+1

おかげ@Sampath、あなたの推奨される変更とその作業罰金と罰金だけでなく.htmlを

loginForm : FormGroup; constructor(formBuilder :FormBuilder) { this.loginForm = formBuilder.group({ username:['',Validators.required] }); } 

。 – Dilip

関連する問題