2016-04-13 32 views
2

Kodumda, form geçersiz olduğunda veya kirli olmadığında devre dışı bırakılmış düğmem var.Açısal2 ve devre dışı bırakma düğmesi istisnası

Ben:

<button type="submit" [disabled]="!myForm.valid || myForm.dirty" class="save-button">Save</button> 

bana

İSTİSNA atar Hangi: İfade' || myForm.valid MyFromComponent @ 58: 38'deki myForm.dirty) işaretlendikten sonra değişti. Önceki değer: 'doğru'. Geçerli değer: 'false' içinde [! MyForm.valid || 38]

zaman geçerlilik/kirli değişiklikleri: 58 @ MyFromComponent içinde myForm.dirty.

Herhangi bir fikrin var mı?

GÜNCELLEME

Ben üretim modunu etkinleştirmek zaman çalışır:

enableProdMode() 
+0

neden sadece 'kullanmayan plunker örneğin tıklayın here! MyForm.valid ' – micronyks

+0

@micronyks, olması gerekiyordu! MyForm.valid || myForm.dirty. edditing için formu ve kullanıcı bir şey değişmemişse, – uksz

+0

kaydedemediniz "[disabled] ="! (myForm.valid || myForm.dirty) "denediniz mi?" '... – micronyks

cevap

3

bu yanı amaca hizmet edecektir düşünüyorum.

[disabled]="!myForm.valid || !myForm.dirty" 
+0

işe yaramadı, hata hala devam ediyor – uksz

+1

http://plnkr.co/edit/Wl6lDyFhhpNt8DFUEdWA?p=preview benim uygulama ile çalışıyorum. – micronyks

1

Bu iletişim formu örneği, lütfen bunu kontrol edin.

HTML dosyası

<form (ngSubmit)="contactSubmit()" #contactForm="ngForm"> 
    <div class="form-group"> 
     <label for="exampleInputEmail1">Name</label> 
     <input type="text" class="form-control" placeholder="Name" required ngControl="name" #name="ngForm" [(ngModel)]="cForm.name"> 
    </div> 
    <div class="form-group"> 
     <label for="exampleInputEmail1">Email address</label> 
     <input type="email" class="form-control" placeholder="Email" required ngControl="email" #email="ngForm" [(ngModel)]="cForm.email"> 
    </div> 
    <div class="form-group"> 
     <label for="exampleInputEmail1">Message</label> 
     <textarea class="form-control" placeholder="Message" required ngControl="message" #message="ngForm" [(ngModel)]="cForm.message" ></textarea> 
    </div> 
    <button type="submit" class="btn btn-default" [disabled]="!contactForm.form.valid">Submit</button> 
    <button type="button" class="btn btn-default" (click)="newcForm()" >New Form</button> 
</form> 

TS dosya

import {Component} from 'angular2/core'; 
import {NgForm} from 'angular2/common'; 

@Component({ 
    selector: 'my-app', 
    providers: [], 
    templateUrl: 'contact-us.component.html', 
    directives: [] 
}) 
export class App { 
    public cForm = new contactForm('','',''); 
    submitted = false; 
    active = true; 

    contactSubmit(){ 
     this.submitted = true; 
    } 
    newcForm(){ 
     this.cForm = new contactForm('','',''); 
     this.active = false; 
     setTimeout(()=> this.active=true, 0);   
    } 
} 

export class contactForm { 
    constructor(
     public name: number, 
     public email: string, 
     public message: string 
    ) { } 
} 

İlgili konular