アプリのカスタマイズ

このアプリは MVC (モデル、ビュー、コントローラ)構造に従います

モデル

モデルは、様々な属性を定義し、その値を保存します。 モデルに格納されている各種属性の値には、構文を使用してコントローラからアクセスできます

this.getValue('attributeName')

アプリでカスタマイズする場合は、新しく作成したすべての属性がモデルのマップの下に追加されます。
モデルに新しい属性を設定するには、コントローラで次の構文を使用します。

// If a key is not already in model then it will be added to extraProps
this.setValue('key', value)

モデルに追加された属性にアクセスするには、次の構文を使用します。

const value = this.getValue("key")

表示

ビューは、アプリの UI を定義します。 JSON ファイルを使用して、ファイルの表示を定義します。 ここでは、コンポーネント、css (コンポーネントの抽出で指定)を定義し、モデルに保存された値をレンダリングします。
アプリでは、各ビューは JSON を使用して定義されます。 JSON は、と呼ばれる一意の ID を使用して参照されます。 id.

コントローラー

コントローラは、イベントを処理し、データを処理するために使用されます。 コントローラーは、サーバーからデータを取得して送信するために使用され、UI に表示されるものとバックエンドに保存されるものの間のインターフェイスです。

  • 初期化時に値を設定するには、を使用します init 関数。
  • コントローラにメソッドを追加するには、次の構文を使用します。
methodName: function(args){
    // functionality
}

この methodName ここでは、 key json (ビュー)または他の関数でメソッドを参照するには

  • コントローラでメソッドを呼び出すには、構文を使用します
this.next('methodName', args)

次に、簡単な例を使って、これらの 3 つのコンポーネントがどのように相互にやり取りするかを示します。
クリックするとラベル値を切り替えるボタンを追加します

例を表示

次に、モデル内に格納された動的テキストを変数名の下に表示するボタンの JSON を定義します buttonLabel.
この例では、ボタンをクリックすると、ラベルが変更されます。

{
    "component": "button",
    "label": "@extraProps.buttonLabel",
    "variant": "cta",
    "on-click": "switchButtonLabel",
}

モデルの例

この場合、 extraProps.buttonLabel ボタンのラベルを保持します

コントローラの例

  controller: {
    init: function (context) {
      context.setValue("buttonLabel", "Submit")
    },

    switchButtonLabel(){
        const buttonLabel = this.getValue("buttonLabel") === "Submit"? "Cancel" : "Submit"
        this.setValue("buttonLabel", buttonLabel)
    }
  }

以下のGIFは、上記のコードの動作を示しています
basic_customization

recommendation-more-help
11125c99-e1a1-4369-b5d7-fb3098b9b178