2016-06-15 17 views

Trả lời

23

Bạn nên sử dụng phương pháp markAsDirty, như thế này:

control.markAsDirty(); 

này cũng sẽ đánh dấu tất cả các tổ tiên trực tiếp là bẩn để duy trì mô hình.

Docs link

+0

Lưu ý rằng điều này cũng sẽ làm việc trên một 'FormGroup', loại bỏ việc cần phải thiết lập một Whack kiểm soát một cách độc lập sau đó, nói , 'patchValue ({})'. – msanford

+0

Trong khi mỗi bài tôi tìm thấy trên SO nói để gọi markAsDirty, điều này đặt thành công kiểm soát là bẩn nhưng không bong bóng lên đến NgForm hoặc FormGroup. Nếu tôi kiểm tra các đối tượng đó trong Chrome, trình thu thập "bẩn" của họ vẫn trả về false. Tôi không biết tại sao. – nogridbag

0

Đối với mẫu điều khiển hình thức chúng ta có thể sử dụng dưới mã chung

public onSubmitForm(cardFormObject: NgForm) { 
     if (!cardFormObject.valid) 
      this.markAsDerty(cardFormObject);  

    } 

    private markAsDerty(cardFormObject: NgForm) { 
     for (var eachControl in cardFormObject.controls) { 
      (<FormControl>cardFormObject.controls[eachControl]).markAsDirty(); 
     } 
    } 
Các vấn đề liên quan