使用客户端筛选器时,AMP-LIST不会在初始加载时呈现元素

时间:2018-11-28 12:47:43

标签: amp-html

我正在尝试通过遵循this doc
来实现客户端过滤 但是我遇到的问题是,最初加载页面时,列表为空(amp-list不会从远程url填充列表),但是当我开始键入一些查询时,功能可以按预期工作。

以下是我的实现中的摘要:

<amp-state id="citiesList" src="//.../citiesList.json"></amp-state>

<input on="input-debounced:AMP.setState({filteredCities: citiesList.items.filter(a => event.value=='' ? true : a.name.toLowerCase().indexOf(event.value.toLowerCase())>=0)})">

<amp-list [src]="filteredCities" src="//.../citiesList.json" layout="fixed-height" height="350" [height]="(48)*filteredCities.length">
    <template type="amp-mustache">
        <li>
            <span>{{name}}</span>
        </li>
    </template>
        <div overflow class="list-overflow"></div>
</amp-list>

在控制台中,我可以看到与此相关的警告:

Default value (//.../citiesList.json) does not match first result (null) for <AMP-LIST [src]="filteredCities">. We recommend writing expressions with matching default values, but this can be safely ignored if intentional.

这里要注意的另一件事是,按下下拉按钮后即可看到输入字段。

1 个答案:

答案 0 :(得分:0)

我必须通过在选择按钮上编写以下代码来解决此问题:

<button on="tap:AMP.setState({filteredCities: citiesList.items})" tabindex="0">

但是我确定这是否是实现此目的的最佳方法。