Shopware管理CMSコンポーネントエディタのインターフェースビューを再設計
<p>Shopware の WYSIWYG エディタで使用する新しい CMS 要素を作成する場合、3 つのコンポーネントがあります: <code>component</code> という名前のコンポーネント、<code> configComponent</code> という名前のコンポーネント、および < という名前のコンポーネント;code>previewComponent。 </p>
<p><code>configComponent</code> は明らかに要素の構成を選択するために使用され、<code>component</code> コンポーネントはエディターのビューを更新するために使用されます。たとえば、設定セクションで選択した内容を表示します。私の問題は、ユーザーが保存ボタンをクリックした後にのみエディターのビューが更新されるため、ユーザーエクスペリエンスが低下することです。リアルタイムで更新する必要があります。 </p>
<p><strong><code>configComponent</code>からエンティティIDを選択した後、何らかの方法で<code>$emit</code>更新イベント</strong>を行う必要があると思います。その後、選択したエンティティの ID を <code>component</code> コンポーネントに渡します。 </p>
<p>それで、<code>component</code> の小枝には次のコードがあります。
<pre class="brush:js;toolbar:false;"> <config-component @entity-picked="entityPickedHandler" />
</pre>
<p>ドキュメントの理解によると、<code>entity-picked</code> イベントが <code>configComponent</code> から発行されるときに、これは <code>component</code> で呼び出される必要があります。 ; 「entityPickedHandler」メソッド。 </p>
<p>たとえば、これは <code>component</code> のイベント ハンドラーです。 </p>
<pre class="brush:js;toolbar:false;">メソッド: {
entityPickedHandler(data) {
console.log('トリガーイベント:', データ);
}
}
</pre>
<p>次に、<code>configComponent</code> からイベントを発行します。 </p>
<pre class="brush:js;toolbar:false;">計算: {
myEntity: {
得る() {
this.element.config.entity.value を返します。
}、
セット(値) {
// this.$set(this.element.data, 'entityId', value);
this.element.config.entity.value = 値;
console.log('エンティティが選択したイベントを発行してみます');
this.$emit('エンティティが選択された', value);
}
}
}
</pre>
<p><code>entityPickedHandler</code> ハンドラーの <code>console.log()</code> が出力しないため、これは明らかに機能しません。ただし、イベントは発行されるはずです。 </p>