0

@spartacus-storefront に関連

リクエストで受け取った「テンプレート」に応じてモジュールを遅延ロードするにはどうすればよいGET '/pages'ですか?

例: ホームページ

  • GET (anonymous user) '/pages' -> {... template: LandingPage1Template } ->カスタム コンポーネントのオーバーライドを含む LandingPage1.module を読み込みたい
  • GET (connected user) '/pages' -> {... template: LandingPage2Template } ->別のカスタム レイアウト/スロット/コンポーネントを使用して別のモジュールをロードしたい

テンプレートとロードする必要があるモジュールとの間のマッピングを作成する方法が必要です。

4

1 に答える 1

0

このようなロジックを Spartacus のコア メカニズムで簡単に実装できるかどうかはわかりませんが、SAP Commerce Cloud 側で処理することが最善の方法になると思います。

たとえば、2 つの個別のテンプレートを保持しLandingPage1TemplateLandingPage2Templateホームページの場合、SAP Commerce Cloud システムはユーザーのステータスを検証し、表示するスロットとコンポーネントを含む異なるページ構造を Spartacus アプリケーションに送信できます。

Spartacus Angular アプリケーション側では、個別のテンプレートの構成を追加する必要があります。次に例を示します。

export const layoutSlotsConfig: LayoutConfig = {
  layoutSlots: {
    header: {
      xs: {
        slots: ['Header']
      },
      sm: {
        slots: ['Header']
      },
      md: {
        slots: ['Header']
      },
      lg: {
        slots: ['Header']
      }
    },
    LandingPage1Template: {
      slots: [
        'Section1C',
        'Section1A'
      ]
    },
    LandingPage2Template: {
      slots: [
        'Section2C',
        'Section2A'
      ]
    },
    footer: {
      slots: ['Footer']
    }
  }
};

そして、Spartacus のコア メカニズムを介して、上記のテンプレートに個別の UI スタイル、スロット、およびコンポーネントを簡単に実装できます。つまり、ユーザーのステータスに基づいて、ホームページに個別の UI とロジックを実装でき、操作する必要はありません。フロントエンド アプリケーション側のモジュール。

同じアプローチは、別の Web サイト ページでも完全に機能します。

于 2020-06-23T13:35:29.763 に答える