2015-12-06 10 views
6

ionic/angular 2を試したいと思います。フォームを作成する方法を理解できません。これどうやってするの?ionicでフォームを作る方法2

+0

オフトピックこの質問どのように地球上のですか? stackoverflow自体が使用不能になると判断されました – user872985

+0

質問は "どのようにイオン/角度2でフォームを作成するのですか"です。それは良い質問です。チュートリアルを要求するセクションは、ルールに反する場合は無視できます。 – user872985

答えて

23

まず、簡単なログインフォームの作成を想定します。

  • 形式:

    • (入力)ユーザ名

    • (入力)パスワード

    • (ボタン)ログイン

あなたの.htmlファイル:あなたの.jsで

 <form [ngFormModel]="loginForm" (submit)="login($event)"> 
      <ion-input stacked-label> 
       <ion-label>Username</ion-label> 
       <input type="text" ngControl="username"> 
      </ion-input> 

      <ion-input stacked-label> 
       <ion-label>Password</ion-label> 
       <input type="password" ngControl="password"> 
      </ion-input> 

      <div padding> 
       <button block type="submit" [disabled]="!loginForm.valid">Login</button> 
      </div> 
     </form> 

ファイル:

import {FormBuilder, Validators} from 'angular2/common'; 

export class LoginPage { 

    constructor(form: FormBuilder) { 
    // Create a new form group 
    this.loginForm = form.group({ // name should match [ngFormModel] in your html 
     username: ["", Validators.required], // Setting fields as required 
     password: ["", Validators.required] 
    } 

    // This is called on form submit 
    login(event) { 
    console.log(this.loginForm.value) // {username: <usename>, password: <password> } 
    event.preventDefault(); 
    } 

} 

Reference

+0

何らかの理由で、この解決策が '要素では機能しないことがわかりました。ラベルは表示されず、入力には枠がなく、ユーザーがフォームに値を入力すると、送信ボタンが有効になりません。要素がなければ、このソリューションはうまく動作します。 –

+0

ねえ@PhilD。あなたはもうその問題に来ていますか?私は同じことを経験しています – divramod

+0

@divramod私のコメント以来、 ' 'で動作させようとはしていませんでした。これがなくてもうまくいっていて、さらに調査したいと思っているのに「積み重なったラベル」について十分なことは分かっていません。 ' <イオンラベルスタック>ユーザー名 <イオン入力[(ngModel)] =「ユーザ名」タイプ:マークアップはので、この代わりに使用し、私のために働くように見えるdoes'tことは注目に値する –

関連する問題