调用setState()时如何不刷新所有AMP列表?

时间:2018-09-18 01:22:52

标签: html amp-html amp-bind

我正在尝试使用amp-bind来建立一个放大器主页。

我在页面顶部具有以下状态JSON:

<amp-state id="myState" [src]="'/api/activity/all?country=' + selected">
  <script type="application/json">...

我有这两个AMP列表:

    <amp-list width="auto"
      height="192"
      layout="fixed-height"
      src="/api/activity/all"
      [src]="myState.categories"
      class="m1"
      id="categories"
      items="data.0.categories">

      <template type="amp-mustache">
         <amp-img  width="197" height="185" src="@{{icon}}"></amp-img>
      </template>
    </amp-list>

此列表:

      <amp-list width="auto"
        height="100"
        layout="fixed-height"
        src="/api/activity/all"
        [src]="myState.data"
        class="m1"
        id="activities"
        items="data">

到目前为止,一切都很好。但是,我添加了一个共享按钮,在点击该按钮时会显示一个下拉菜单。所以我设置了一个切换器:

<amp-img on="tap:AMP.pushState({visible: !visible})" id="share-icon" alt="TO DO" width="50" height="50" src="design/share.png"></amp-img>

我的问题是,当我点击共享按钮时,尽管它可以工作,但它刷新了两个列表,导致闪烁。

1 个答案:

答案 0 :(得分:0)

闪烁是由放大器列表评估其绑定导致的(即使AMP.pushState(...)调用不影响其绑定)。请提交AMP运行时here的错误报告。