Saya memposting pertanyaan yang sama dalam bentuk yang berbeda, tetapi tidak ada yang menjawab. Saya tidak mendapatkan gambaran yang jelas tentang apa yang dilakukan para Formatters dan Parsers di angular js.
Menurut definisi, baik Formatters dan Parsers terlihat mirip dengan saya. Mungkin saya salah, karena saya baru mengenal angularjs ini.
Definisi Pemformat
Larik fungsi yang akan dijalankan, sebagai pipeline, setiap kali nilai model berubah. Setiap fungsi dipanggil, pada gilirannya, meneruskan nilai ke fungsi berikutnya. Digunakan untuk memformat / mengubah nilai untuk ditampilkan di kontrol dan validasi.
Definisi Parser
Larik fungsi yang akan dijalankan, sebagai pipeline, setiap kali kontrol membaca nilai dari DOM. Setiap fungsi dipanggil, pada gilirannya, meneruskan nilai ke fungsi berikutnya. Digunakan untuk membersihkan / mengubah nilai serta validasi. Untuk validasi, parser harus memperbarui status validitas menggunakan $ setValidity (), dan mengembalikan tidak ditentukan untuk nilai yang tidak valid.
Tolong bantu saya untuk memahami kedua fitur dengan contoh sederhana. Ilustrasi sederhana dari keduanya akan dihargai.
(123) 123-1234
nomor telepon. Parser membaca data setiap kali berubah dan biasanya digunakan untuk menyetel status input $ valid. Dokumen memiliki contoh keduanya.Jawaban:
Topik ini dibahas dengan sangat baik dalam pertanyaan terkait: Bagaimana cara melakukan pemfilteran dua arah di AngularJS?
Untuk meringkas:
Berikut adalah contoh sederhana, membangun sebuah contoh dalam dokumentasi api NgModelController :
Anda dapat melihatnya beraksi: http://plnkr.co/UQ5q5FxyBzIeEjRYYVGX?plnkr=legacy
Saat Anda mengetik nama di (view to model), Anda akan melihat bahwa model selalu huruf kecil. Namun, saat Anda mengklik tombol dan secara programatik mengubah nama (model untuk dilihat), kolom input selalu dalam huruf besar.
sumber
ngModel.$setViewValue(transformedInput);
untuk menyetelnya danngModel.$render();
merendernya dari fungsi $ parsers.$formatters
dilakukan, segera dikembalikan oleh$validators
. ; (Penggunaan lain untuk pemformat dan pengurai adalah ketika Anda ingin menyimpan tanggal dalam waktu UTC dan menampilkannya dalam waktu lokal pada input, saya membuat direktif datepicker di bawah ini dan filter utcToLocal untuk ini.
Ia menggunakan filter utcToLocal ini yang memastikan tanggal masukan dalam format yang benar sebelum mengonversi ke waktu lokal.
moment.js digunakan untuk mengubah tanggal lokal ke utc.
pickadate.js adalah plugin datepicker yang digunakan
sumber