Dalam mencipta elemen CMS baharu untuk digunakan dalam editor WYSIWYG Shopware, kami mempunyai tiga komponen: satu bernama component
dan satu lagi bernama configComponent
, dan satu lagi bernama < ;code>previewComponent.
configComponent
jelas digunakan untuk memilih konfigurasi elemen, manakala komponen component
Sebagai contoh, paparkan kandungan yang dipilih dalam bahagian konfigurasi. Masalah saya ialah ia hanya mengemas kini paparan dalam editor selepas pengguna mengklik butang simpan, yang membawa kepada pengalaman pengguna yang buruk - ia harus dikemas kini dalam masa nyata.
Saya rasa saya perlu entah bagaimana configComponent
, Kemudian lulus ID entiti yang dipilih kepada komponen
Jadi, dalam ranting
Dari pemahaman saya tentang dokumentasi, ini harus dipanggil apabila acara
entiti dipilih
dipancarkan daripadaconfigComponent
; kaedah "entityPickedHandler".Sebagai contoh, ini ialah pengendali acara dalam
komponen :kaedah: { entityPickedHandler(data) { console.log('Peristiwa pencetus:', data); } }Kemudian, keluarkan acara daripada
configComponent
:dikira: { myEntity: { dapatkan() { kembalikan this.element.config.entity.value; }, set(nilai) { // this.$set(this.element.data, 'entityId', value); this.element.config.entity.value = nilai; console.log('Cuba untuk memancarkan acara yang dipilih entiti'); this.$emit('entity-picked', value); } } }Jelas sekali, ini tidak berfungsi kerana
console.log()
dalam pengendalientityPickedHandler
Walau bagaimanapun, peristiwa itu sepatutnya dipancarkan.
Penetap/Penetap boleh menjadi agak rumit apabila melibatkan skop. Pendekatan biasa nampaknya betul. Mungkin cuba simpan entiti dalam sifat data dan tetapkan pendengar padanya.
Dikemas kini
Atau sebagai pendengar di dalam komponen
component
:Data kemudiannya boleh dikemas kini daripada
configComponent
menggunakan:Kemudian, dalam fail ranting
configComponent
的twig文件中,myentity
方法用于sw-entity-single-select
的v-model
, kaedahmyentity
digunakan dalamv-model
sw-entity-single-select
: