FormGroup项输入未在Ionic 2上更新

时间:2017-08-09 15:10:49

标签: angular typescript ionic2

我是Angular 2的新手。我尝试使用FormBuilder&amp ;;创建一个简单的表单。 FormGroup。但由于某些原因,无论我在视图中输入用户名字段中的内容未在我的组件上进行更新,当我点击提交按钮时,看不到新值。我的观点和组件代码如下,有人可以指出我的问题是什么。

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 个答案:

答案 0 :(得分:2)

更改

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

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

答案 1 :(得分:1)

您需要进行以下更改。

.ts

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

html的

 <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>