Google-amp-data-binding
Google AMP-データバインディング
Amp-bindは、データバインディングとJSのような式を使用したアクションに基づいて、アンプコンポーネントとHTMLタグに対話性を追加するのに役立ちます。 この章では、データバインディングについて詳しく説明します。
amp-bindを使用するには、次のスクリプトをページに追加する必要があります-
示されているように実際の例を使用してこれを完全に理解しましょう-
例
出力
下に示すようにテキストが変化するのを見るためにボタンをクリックしてください-
したがって、上記の例では、amp-bindを使用して、ボタンをクリックしたときにテキストを変更しました。
アンプバインドには3つのコンポーネントがあります-
- 状態-最初は状態は空です。 ボタンをクリックすると、状態が変更されます。 例えば、
AMP.setStateメソッドは、状態を変更するために使用されます。 変数 world には値*これはamp-bindの例*が割り当てられます。 変数 world はhtmlタグ内で使用されます-
ボタンをクリックすると、worldに新しい値が割り当てられます。これはamp-bindの例です。
また、以下に示すように、バインド付きのamp-stateを使用できます-
式には、バインディング中に bmyState.foo が割り当てられます。
- 式-amp-bindが機能するための式は次のとおりです-
- Bindings -バインディングは[attributes]形式の特別な属性に適用されます。 たとえば-
上記の例では、 [text] には、 p タグのバインドに使用される式が含まれています。
私たちはバインディングに次の属性を使用できます-
- [テキスト]
- [クラス]
- [非表示]
- [幅] *[高さ]
バインディングはampコンポーネントで実行することもでき、特定の属性のみが許可されます。 次のリストは、Suhコンポーネントと属性を示しています-
Sr.No | Amp component | Attributes & Description |
---|---|---|
1 | <amp-carousel type=slides> |
このバインド動作を使用してスライドを変更します |
2 | <amp-date-picker> |
[min] min→選択可能な最も早い日付を設定します
max→選択可能な最新の日付を設定します |
3 | <amp-iframe> |
[src] iframeのソースを変更 |
4 | <amp-img> |
[srcset]* alt、属性、srcおよびsrcsetを変更できます。srcを変更する場合は、キャッシングに使用されるsrcsetを変更してください |
5 | <amp-lightbox> |
[open]* _open_にバインドしてライトボックスを表示/非表示にできます |
6 | <amp-list> |
[src] 式が文字列の場合、文字列URLからJSONを取得してレンダリングします。 式がオブジェクトまたは配列の場合、式データをレンダリングします。 |
7 | <amp-selector> |
[selected] [disabled]* オプション属性値によって識別される現在選択されている子要素を変更します。 複数選択のための値のコンマ区切りリストをサポートします |
Amp-Stateを使用したバインド
html要素またはampコンポーネントで使用するすべてのデータでamp-stateを定義できます。
amp-state内で使用されるデータは、以下に示すようにJSON形式である必要があります-
したがって、車の名前と車に使用される画像でキーと値のペアを定義しました。
テキストとアンプ画像のアンプバインド
amp-bindでamp-stateを使用した作業例を以下に示します-
出力
ボタンをクリックして、車の変化の画像と下のテキストを表示します。
ビデオとIFrameのアンプバインド
amp-iframeとamp-video srcを変更する実例が表示されます。
ここでは、iframesrcおよびvideo srcでamp-stateを使用していることに注意してください。
currentlistは空に設定され、ボタンをタップすると、list1に設定されます。currentlist変数は、以下に示すようにiframeとビデオのsrcに使用されます-
出力
ボタンをクリックして、ビデオとiframe srcの変化を確認します。
amp-lightboxとのamp-bind
それでは、バインディングとamp-lightboxを併用した場合の動作を見てみましょう。
例
amp-lightboxでバインディングを使用するには、以下に示すようにamp-lightboxで[open]を使用しました-
[open] =“ displaylightbox”は変数の状態であり、ボタンのクリックとライトボックスdivのタップでtrue/falseに変更されます-
出力
InputエレメントへのAmpバインディング
示されているように、実際の例を使用して、入力要素へのamp-bindingの動作を理解しましょう-
出力
テキストボックス内に入力されたデータは、下部に表示されます。 これは、入力イベントの状態変数 name を次のように変更することで実行できます-