1

材料のmd入力コンポーネントをAngular 2に使用しています。材料のアルファ版ですが、Angularに必要なhtml検証属性の使用方法を教えてくれるかもしれません2でmd-input(まだ実装されていますか?)私はこれを試しました(うまく動作します):角度2の材料md入力のバリデーション

<md-card> 
    <md-input 
     placeholder="Url" 
     id="url" 
     url="url" 
     [(ngModel)]="urlInputValue" 
     #url="ngModel" 
     required> 
     <md-hint *ngIf="url.errors && (url.dirty || url.touched)" [ngStyle]="{'color': 'red'}"> Url is required </md-hint>    
    </md-input> 

    <button 
     md-raised-button color="accent" 
     [disabled]="isUrlInputEmpty()" 
     (click)="onRequestBtnClick()"> 
     Request 
    </button> 
</md-card> 

どのように私は '必須'を使用できますか?

import { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms'; 

export class UrlComponent { 
    public urlForm: FormGroup; 
    constructor(private formBuilder: FormBuilder) { 

    this.urlForm = this.formBuilder.group({ 
    url: new FormControl('', Validators.required), 
    }); 
    } 
//... codes.. 
} 

をまたにあなたのHTMLを変更します:あなたのTSファイルで

<md-hint *ngIf="url.errors.required && (url.dirty || url.touched)" [ngStyle]="{'color': 'red'}"> Url is required </md-hint> 
+0

あなたはMD-入力を制御したいか、単にあなたはそれが必要があることを望みます必要とされている ? –

+0

これが必要です。 url.errorsの代わりにurl.errors.requiredを使用すると、「nullの「必須」のプロパティを読み取ることができません」というエラーメッセージが表示されます。 – hellobasti

+0

はい、通常、TS部分の 'url'には何がありますか? 'md-input'要素に' required 'と記述されているのであれば、それが必要です。 –

答えて

2

あなたが持っている必要があり

<form role="form" [formGroup]="urlForm" novalidate> 
<md-input 
    placeholder="Url" 
    id="url" 
    url="url" 
    [(ngModel)]="urlInputValue" 
    formControlName="url" 
    #url="ngModel" 
    > 
    <md-hint *ngIf="url.errors && (url.dirty || url.touched)" [ngStyle]="{'color': 'red'}"> Url is required </md-hint>    
</md-input> 

<button 
    md-raised-button color="accent" 
    [disabled]="isUrlInputEmpty()" 
    (click)="onRequestBtnClick()"> 
    Request 
</button> 

</form> 
+0

これは反応型アプローチです テンプレートドライバアプローチを使用する方法は? –

関連する問題