2015-11-27 27 views

Trả lời

16

Trong góc 2 bạn có thể sử dụng các sự kiện DOM bản địa

<input (blur)="someMethod()" /> 

Bây giờ, chỉ cần xác định một phương pháp mà những gì bạn cần khi lĩnh vực này đang mờ

+0

nhưng tôi muốn chỉ thực hiện hai cách ràng buộc dữ liệu trên đầu vào. Nếu tôi phải thực hiện một phương thức, nó bổ sung thêm chi phí để thực hiện một ràng buộc hai chiều. – matthewdaniel

+1

@matthewdaniel, không chắc chắn những gì bạn đang yêu cầu. Nếu bạn muốn sử dụng liên kết dữ liệu 2 chiều, sử dụng '[(ngModel)]' nếu bạn muốn định nghĩa một trình xử lý mờ sử dụng phương pháp TGH. Nếu bạn muốn nói 'ngModel' chỉ cập nhật trên blur, ... thực ra tôi cũng muốn biết điều đó. Tôi không tin rằng hiện tại có một cách để làm điều đó ... dễ dàng – bodine

+0

Tương đương Vue.js là trình sửa đổi ràng buộc "lười": v-model.lazy = "myData". Điều này sẽ là tuyệt vời để xem trong Angular 2. – nogridbag

3

Thậm chí mặc dù đây là một chủ đề rất cũ, bây giờ có một giải pháp rất gọn gàng mà đi kèm với Angular5.

Bạn kích hoạt các bản cập nhật trên mờ như thế này:

hình thức Tempalte driven:

<input [(ngModel)]="lastname" [ngModelOptions]="{ updateOn: 'blur' }"> 

hình thức phản hồi:

this.nameForm = new FormGroup ({ 
    firstname: new FormControl('', { 
    validators: Validators.required, 
    updateOn: 'submit' 
    }), 
    lastname: new FormControl('', { 
    validators: Validators.required, 
    updateOn: 'submit' 
    }) 
}); 

(bạn có thể chọn submit hoặc blur như giá trị)

Tham chiếu: https://medium.com/codingthesmartway-com-blog/angular-5-forms-update-9587c3735cd3

Các vấn đề liên quan