2017-10-03 22 views
7

planlanan biçim:
Açısal 4 Ben Açısal 4'te form verilerini otomatik kaydetme Böyle çalışması gerekir uygulamak çalışıyorum otomatik kaydetme

  • Kullanıcı formunda bazı verileri değiştirir -> Bazı DB isteği kaydetmek çağrılır . Bir zamanlayıcının 2'ler için burada başlatıldığını varsayalım.
  • Önceki kayıttan 2 saniye boyunca, tüm değişiklikler herhangi bir istekte bulunmayacak (DB yükünü azaltmak için), ancak başka bir kaydetme isteğini tetikleyecektir, ardından 2s zamanlayıcının süresi sona erecektir.
  • Şu anda hiç zamanlayıcı başlatılmazsa, kaydetme isteği hemen çağrılmalıdır.

Ben RxJS dan Observable, Subject ve Scheduler bana yardım edeceğini varsayalım, ama bunun için tamamen yeni duyuyorum. Yukarıdaki işlevselliğe ulaşmak için en iyi yaklaşımı önerebilir misiniz lütfen?

cevap

4

sadece auditTime operatör ile zincirleme valueChanges property on FormGroup object abone olabilirsiniz:

this.form.valueChanges.auditTime(2000).subscribe(formData => /* save to DB */) 

Belki de throttleTime ve debounceTime operatörleri de bakabilirsiniz.

+0

Teşekkür ederiz! 'auditTime' operatörü tam olarak ihtiyacım olan şey! Çok basit ve zarif bir çözüm. – aleksei

+0

İlgili cevap: https://stackoverflow.com/questions/46094431/how-to-implement-auto-save-a-reactive-form-in-angular-4 – Hauke

İlgili konular