Saat menggunakan komponen DtQuickFilter dan meneruskan array filter ke input [filters], komponen tidak bereaksi seperti yang diperlukan seperti yang dilakukan DtFilterField.
Komponen DtQuickFilter harus bereaksi dengan tepat terhadap filter yang diteruskan ke input [filter]. Maka acara (filterChanges) harus diaktifkan.
Komponen DtQuickFilter menerima filter yang diteruskan ke [filters], tetapi tidak mengaktifkan event handler, dan juga konsol menampilkan ExpressionChangedAfterItHasBeenCheckedError.
Terima kasih!
Arnaud
Hai @areknow terima kasih telah memberikan contoh reproduksi dan membuka masalah.
Saya kira acara tidak dipicu adalah dengan desain - karena Anda sudah mengatur filter, Anda tahu bahwa itu berubah - oleh karena itu kami tidak mengaktifkan acara segera setelah input ditetapkan. Kami hanya mengaktifkan peristiwa ketika pengguna berinteraksi dengan komponen. Tapi saya mungkin salah dalam hal ini @lukasholzer Anda tahu lebih pasti :)
Mengenai kesalahan ExpressionChangedAfterChecked - ini jelas sesuatu yang perlu kita periksa.
Pada titik ini kami berasumsi bahwa ini adalah masalah saat menjalankan di viewEngine.
Kami telah mencoba mereproduksinya di aplikasi dev dan demo kami, dan tidak berhasil. Kami tidak dapat mereproduksi masalah di luar stackblitz.
@areknow dapatkah Anda mengonfirmasi bahwa aplikasi tempat Anda melihat masalah ini, berjalan di viewEngine (kami tahu bahwa stackblitz menjalankan viewEngine)?
@ffriedl89 Tentu itu masuk akal, terima kasih atas penjelasannya tentang event handler!
@gselltho Saya dapat mengonfirmasi bahwa aplikasi saya menggunakan viewEngine.
Terima kasih teman-teman!
@tomheller Saya baru saja mengaktifkan Ivy di aplikasi saya tetapi saya masih melihat kesalahan ExpressionChangedAfterChecked. Mungkin ada hal lain yang terjadi?
Pembaruan menarik lainnya: Kesalahan hanya terjadi pada saya secara lokal. Setelah membangunnya di dev melalui pipa kami (jenkins), kesalahan tidak terlihat di dev env.
Secara lokal saya melakukan npm ci
tetapi saya masih melihat kesalahan. Apakah ada cache lain yang harus dibersihkan?
Terima kasih!
@areknow, bisakah Anda mencoba membangun aplikasi secara lokal dengan AOT? (Sebelum kompilasi waktu). Anda dapat mengaktifkan ini dengan menyetel properti aot
di angular.json
menjadi true atau dengan meneruskan --aot
ke perintah ng serve ...
.
Saya pikir ini adalah masalah kompilasi JIT (tepat waktu) - itu seharusnya menjadi alasan mengapa Anda tidak melihatnya di lingkungan dev Anda.
Secara umum sejak versi 9 Anda harus menggunakan AOT untuk kompilasi:
https://angular.io/guide/aot-compiler#choosing -a-compiler
Sebagai catatan, ada juga call-sync yang dijadwalkan untuk menyelidiki masalah ini lebih lanjut. Terima kasih @areknow telah menyiapkan ini.
@areknow, bisakah Anda mencoba membangun aplikasi secara lokal dengan AOT? (Sebelum kompilasi waktu). Anda dapat mengaktifkan ini dengan menyetel properti
aot
diangular.json
menjadi true atau dengan meneruskan--aot
ke perintahng serve ...
.Saya pikir ini adalah masalah kompilasi JIT (tepat waktu) - itu seharusnya menjadi alasan mengapa Anda tidak melihatnya di lingkungan dev Anda.
Secara umum sejak versi 9 Anda harus menggunakan AOT untuk kompilasi:
https://angular.io/guide/aot-compiler#choosing -a-compiler
@lukasholzer terima kasih atas jawabannya!
Saya mencoba menambahkan aot: true
ke konfigurasi build build di angular.json dan saya juga mencoba menambahkan flag --aot
ke perintah serve. Saya masih melihat kesalahan secara lokal
Ini menjadi sangat aneh. Kami juga telah mencoba ini dalam aplikasi pengembangan kami dengan setiap kemungkinan permutasi ivy: on|off
dan viewEngine: on|off
, dan kami masih tidak dapat mereproduksi kesalahan. Tapi kita bisa melihat ini di stackblitz dan cukup bingung mengapa ini terjadi. Saya menantikan panggilan kami @areknow. Mungkin jika kita menyatukan kepala kita, kita bisa mencari tahu apa yang terjadi di sini.
@tomheller terdengar bagus!
@tomheller Saya dapat mereproduksi masalah dalam proyek baru: https://github.com/areknow/barista-quick-filter-bug
Masih senang bertemu di waktu yang telah kita rencanakan 👍
Berkat @areknow kami dapat melacak sumber masalah dalam pengaturan yang dia berikan. Sayangnya kami masih tidak dapat mereproduksinya di salah satu aplikasi kami di dalam repositori, yang agak mengkhawatirkan.