検索

ホームページ  >  に質問  >  本文

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>
P粉797855790P粉797855790508日前669

全員に返信(1)返信します

  • P粉125450549

    P粉1254505492023-08-15 11:23:01

    Getter/Setter はスコープに関して少し難しい場合があります。通常のアプローチは正しいようです。エンティティをデータ プロパティに保存し、それにリスナーを設定してみてください。

    リーリー

    更新
    または、component コンポーネント内のリスナーとして:

    リーリー

    データは、configComponent から次のコマンドを使用して更新できます。 リーリー

    次に、

    configComponent の twig ファイルで、myentity メソッドが sw-entity-single-select の v-model## で使用されます。 #: リーリー

    返事
    0
  • キャンセル返事