Do you build things with AMP? Fill out the AMP Developer Survey!
AMP
  • websites

Dynamic Content After User-Interaction

Introduction

This is a sample showing how to show dynamic content after an user interaction: the product availability will be shown based on product selection.

Setup

We use amp-bind to dynamically update the page content.

<script async custom-element="amp-bind" src="https://cdn.ampproject.org/v0/amp-bind-0.1.js"></script>

How to get dynamic content

By using amp-bind and amp-state with a JSON end-point, a user can get up-to-date data after an interaction. As amp-bind statements are not evaluated on page load, the updated state is only available after an user interaction, which works well for use cases such as specific product availability.

Please select a product
<amp-state id="products"
  src="/static/samples/json/products.json"></amp-state>

<amp-img on="tap:AMP.setState({ productId: 0})"
  src="/static/samples/img/red_apple_1_60x40.jpg"
  width="60"
  height="40"
  role="button"
  tabindex="0">
</amp-img>
<amp-img on="tap:AMP.setState({ productId: 1})"
  src="/static/samples/img/green_apple_1_60x40.jpg"
  width="60"
  height="40"
  role="button"
  tabindex="0">
</amp-img>
<amp-img on="tap:AMP.setState({ productId: 2})"
  src="/static/samples/img/product1_alt1_60x40.jpg"
  width="60"
  height="40"
  role="button"
  tabindex="0">
</amp-img>
<div [text]="products[productId] + ' available'">Please select a product</div>
Bạn cần được giải thích thêm?

Nếu bạn vẫn còn thắc mắc sau khi đọc hướng dẫn trên trang này, hãy liên hệ với những người dùng AMP khác để thảo luận về trường hợp sử dụng cụ thể của bạn.

Truy cập Stack Overflow
Một tính năng chưa được giải thích?

Dự án AMP đặc biệt khuyến khích sự tham gia và đóng góp của bạn! Chúng tôi hi vọng bạn sẽ trở thành một người tham gia tích cực trong cộng đồng mã nguồn mở của chúng tôi, nhưng chúng tôi cũng chào mừng các đóng góp đơn lẻ về vấn đề mà bạn đặc biệt quan tâm.

Chỉnh sửa mẫu trên GitHub