2016-12-12 4 views
0

ここでは、イオンアプリケーションの角度2のフォーム検証コードを試しましたが、そのフォームでいくつかのエラーがあります。ここ有効数字付き角度2のフォーム

は、私は、ブラウザで実行時エラーメッセージを取得していますテンプレート

<ion-item> 
      <ion-label for="name" floating >FIRST NAME</ion-label> 
      <ion-input formControlName="firstName" type="text" required></ion-input> 
     <div [hidden]="name.valid || name.pristine" 
      class="alert alert-danger"> 
      Name is required 
     </div> 
     </ion-item> 

です。

+0

によって引き起こさHomePage- ./HomePageクラスのエラーメッセージ –

+0

エラーを投稿してください:「有効」未定義 –

+0

共有コンポーネントのコードのプロパティを読み取ることができません。 'が定義されておらず、**を呼び出すような' 'ion-input formControlName =" firstName "type =" text "#name required>' – ranakrunal9

答えて

0

イオン入力、名前フィールド(angular2フォームは内部的に使用する)に参照を追加する必要があります。おそらく、この入力をコンポーネントのnameというプロパティにバインドする必要があります。

あなたのHTMLは次のようにする必要があります:

<ion-item> 
     <ion-label for="name" floating >FIRST NAME</ion-label> 
     <ion-input formControlName="firstName" [(ngModel)]="name" name="name" type="text" #name="ngModel" required></ion-input> 
     <div [hidden]="name.valid || name.pristine" class="alert alert-danger"> 
      Name is required 
     </div> 
</ion-item> 

そして、あなたのコンポーネントで、「名前」と呼ばれるプロパティを追加することを忘れないでください。このように:

import { Component } from '@angular/core'; 

@Component({ 
    selector: 'the-html-page-with-your-form', 
}) 
export class YourComponent { 
    name: string=""; 
    constructor(){} 
} 
+0

このようなモデルをバインドする場合は、コンポーネント –

+0

に名前を追加する場所を教えてください。この場合、名前はコンポーネントで定義されていません。 'name:string =" "'のようなコンポーネントであなたの名前を定義すると、これはエラーをスローしませんが、検証はOKになります。 min length = 5のようないくつかの制限を追加すると、エラーメッセージ –

+0

が表示されます。編集した回答は、あなたが求めていたものを示しています。 – jordins

0

私はこれを試しました!

<ion-item> 
<ion-label floating >FIRST NAME</ion-label> 
<ion-input formControlName="firstName" #refName class="form.control" type="text" ></ion-input> 
    <div *ngIf='signupForm.control'[firstName].hasError('required') class="alert alert-danger"> 
       Please Enter Name! 
    </div> 
</ion-item> 

この

はエラー「テンプレートのパースエラー」のような表示

関連する問題