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 %}