从 amp-list 编辑数据

Edit data from amp-list

我正在使用 amp-list 进行无限滚动,但无法找出如何对接收到的每个加载页面的 JSON 数据值进行 urlencode(更改)。我不希望服务器发送普通编码字符串和 urlencoded,因为这将导致双倍大小的数据(每页 200 个字符串将变为 400 个)。这是我用于 amp-list infinite-scroll 的工作代码:

        <amp-list height="500" width="440" 
        layout="responsive" load-more="auto"
        src="www.myPage.com/firstPageToLoad.json" binding="no">

           <template type="amp-mustache">

              <ul>
                {{#words}} 
                <li>
                    <a class="synWord" href="www.myPage.com/{{.}}">{{.}}</a>    
                </li>
                {{/words}}
              </ul> 

          </template>

        </amp-list> 

所以我的问题是:如何在客户端对“{{.}}”值进行 urlencode? 我已阅读所有文档,但找不到任何解决方案。我试过这样做:

<amp-state id="allData" src="www.myPage.com/firstPageToLoad.json"></amp-state> 

<amp-list [src]="allData.words.map(word => encodeURIComponent(word))"
src="www.myPage.com/firstPageToLoad.json" 
height="500" width="440" 
layout="responsive" load-more="auto" binding="no">

这行不通。我认为这是因为滚动时会自动加载数据,而我的 amp-state 未绑定到该事件。

这里有 hacky 解决方案:

  1. 将 binding="always" 属性设置为 amp-list。
  2. 然后在模板中这样做:

    <a [href]="'http://www.mypage.com/'+encodeURIComponent('{{.}}')">{{.}}</a>