Shopware 관리 CMS 구성 요소 편집기의 인터페이스 보기 재설계
<p>Shopware의 WYSIWYG 편집기에서 사용할 새 CMS 요소를 생성할 때 세 가지 구성요소가 있습니다. 하나는 <code>comComponent</code>라는 이름이고 다른 하나는 <code>configComponent</code> ;코드>미리보기 구성요소. </p>
<p><code>configComponent</code>는 요소의 구성을 선택하는 데 사용되는 반면, <code>comComponent</code> 구성 요소는 편집기에서 보기를 업데이트하는 데 사용됩니다. 예를 들어 구성 섹션에서 선택한 콘텐츠를 표시합니다. 내 문제는 사용자가 저장 버튼을 클릭한 후에만 편집기에서 보기를 업데이트하므로 사용자 경험이 좋지 않다는 것입니다. 실시간으로 업데이트되어야 합니다. </p>
<p><strong><code>configComponent</code>에서 엔터티 ID를 선택한 후 어떻게든 업데이트 이벤트를 <code>$emit</code>해야 한다고 생각합니다. 그런 다음 <코드>컴포넌트</코드>컴포넌트에 대한 선택된 엔터티의 ID입니다. </p>
<p>그래서 <code>comComponent</code>의 나뭇가지에는 다음과 같은 코드가 있습니다: </p>
<pre class="brush:js;toolbar:false;">
</pre>
<p>문서에 따르면 <code>entity-picked</code> 이벤트가 <code>configComponent</code> ; "entityPickedHandler" 메소드. </p>
<p>예를 들어, 다음은 <code>comComponent</code>의 이벤트 핸들러입니다. </p>
<pre class="brush:js;toolbar:false;">메서드: {
엔터티PickedHandler(데이터) {
console.log('트리거 이벤트:', data);
}
}
</pre>
<p>그런 다음 <code>configComponent</code>에서 이벤트를 내보냅니다. </p>
<pre class="brush:js;toolbar:false;">계산됨: {
내엔티티: {
얻다() {
this.element.config.entity.value를 반환합니다.
},
설정(값) {
// this.$set(this.element.data, 'entityId', value);
this.element.config.entity.value = 값;
console.log('엔티티 선택 이벤트를 내보내려고 합니다.');
this.$emit('entity-picked', value);
}
}
}
</pre>
<p><code>entityPickedHandler</code> 핸들러의 <code>console.log()</code>가 출력되지 않기 때문에 이는 작동하지 않습니다. 그러나 이벤트가 발생했어야 합니다. </p>