P粉1254505492023-08-15 11:23:01
Getter/Setter在作用域方面可能有些棘手。通常的做法看起來是正確的。也許可以嘗試將實體儲存在一個資料屬性中,並在其上設定一個監聽器。
data() { return { entity: this.element.config.entity.value, }; }, watch: { entity(value) { this.$emit('entity-picked', value); }, }, methods: { entityChanged(value) { this.element.config.entity.value = value; this.entity = value; }, },
更新
或在component
元件內部作為一個監聽器:
watch: { 'element.data.entityId': { handler() { this.entityId = this.element.data.entityId; }, deep: true, } }
接著可以使用以下方式從configComponent
更新資料:
computed: { myentity: { get() { return this.element.config.myEntity.value; }, set(value) { this.element.config.myentity.value = value; this.$set(this.element.data, 'entityId', value); this.$emit('element-update', this.element); } } },
然後,在configComponent
的twig檔案中,myentity
方法用於sw-entity-single-select
的v-model
:
{% block sw_cms_element_team_box_config %} <sw-entity-single-select label="testing my entity" entity="myexample_entity" v-model="myentity" /> {% endblock %}