AMP中的动态setState

问题描述

我有这样的放大器状态:

<amp-state id="smartBannerData">
<script type="application/json">
    {   
        "0":  {
            "imgSrc": "https://cdn.voicetube.com/assets/img/banners/smartbanner-jp-20200116.jpg"
        },"1":  {
            "imgSrc": "https://cdn.voicetube.com/assets/img/banners/smartbanner-branding-jp.jpg"
        }
    }
</script>
</amp-state>
<amp-img
      alt=""
      src="https://cdn.voicetube.com/assets/img/banners/smartbanner-jp-191205.png"
      width="500"
      height="100"
      layout="responsive"
      [src]="smartBannerData[currentImg].imgSrc"
    >
</amp-img>
<button on="tap:AMP.setState({currentImg: '0'})">1</button>
<button on="tap:AMP.setState({currentImg: '1'})">2</button>

如果单击按钮,图像将动态更改。 我想在加载页面随机更改imgSrc:

<amp-script  script="smart-banner">
    <p>
        test
    </p>
</amp-script>

<script id="smart-banner" type="text/plain" target="amp-script">
setTimeout(function(){  AMP.setState({currentImg: '1'}); },2000)
</script>

但是图像不会改变。.我是AMP的新手,有人可以帮助我解决问题吗?

解决方法

您可以尝试下一种方法吗?

<button on="tap:AMP.setState({currentImg: floor(random()*(100-0)+0) })"></button>

最大为100,最小为0。您可以根据需要更改此新旧邮件。

最好的问候, V。