En la aplicación Laravel 8 / livewire 2, agregué ckeditor y funciona, con la actualización de datos de livewire con jkavascript, pero el problema es que cuando ingreso 1 carácter en el área de ckeditor, pierdo el foco, los siguientes símbolos ingresados se pierden. Hago :
<div wire:ignore class="p-2 w-full"> <textarea wire:model.lazy="form.content" class="form-control" id="content_textarea"></textarea> <x-jet-input-error for="form.content" class="mt-2"/> </div>...
ClassicEditor .create( document.querySelector( '#content_textarea' ), { extraPlugins: [ SimpleUploadAdapterPlugin ], // ... } ) .then(editor => { editor.model.document.on('change:data', () => { console.log('change:data editor.getData()::') console.log(editor.getData()) @this.set('form.content', editor.getData() ) }) }) .catch( error => { console.error( error ); } );Uso perezoso para todas las entradas en este formulario y funcionan bien: en la consola de los navegadores veo que se obtienen mensajes solo cuando el usuario deja la entrada. En el evento de cambio: datos anterior, veo que el evento se activa y supuse que esto interrumpe el modo perezoso, pero no sé cómo se puede solucionar.
¡Gracias!
Encontré una decisión con el uso de change:isFocused event :
CKEditorInit: function () { ClassicEditor .create( document.querySelector( '#content_textarea' ), { extraPlugins: [ SimpleUploadAdapterPlugin ], } ) .then(editor => { editor.ui.focusTracker.on( 'change:isFocused', ( evt, name, isFocused ) => { if ( !isFocused ) { const doc = document.getElementById('news_admin_page_container'); var wireIds = window.livewire.find(doc.getAttribute("wire:id")) wireIds.set('form.content', editor.getData()) } } ); // 'change:isFocused'