如何将 object 添加到 AMP-HTML 中的 amp-state 数组?
How to add an object to an amp-state array in AMP-HTML?
我有一个名为 currentItem 的状态,带有 url、标题、描述...当我按下一个按钮时,currentItem 应该保存在另一个名为 myItems 的状态中。它将包含项目列表 objects.
现在的问题是它总是显示最后一个项目,所以它会为每个当前项目提交覆盖整个列表。
我的州:
<amp-state id="currentItem">
<script type="application/json">
{
"url": "",
"imageUrl": "",
"title": "",
"description": ""
}
</script>
</amp-state>
<amp-state id="myItems">
<script type="application/json">
[]
</script>
</amp-state>
列表定义:
<amp-list class="mt3"
layout="fixed-height"
height="0"
[src]="myItems"
[height]="myItems.length * 200"
items="."
binding="no">
<template type="amp-mustache">
...
</template>
将 currentItem 添加到列表的操作:
<button type="button"
on="tap:AMP.setState({ myItems: [currentItem]})">
Add
</button>
我尝试使用 AMP.setState({ myItems: myItems.concat(currentItem)}) 但它崩溃了,还有 +。我该怎么做?
concat
需要一个数组。这是工作版本:
<amp-state id="currentItem">
<script type="application/json">
{
"url": "url",
"imageUrl": "imageUrl",
"title": "title",
"description": "desc"
}
</script>
</amp-state>
<amp-state id="myItems">
<script type="application/json">
[]
</script>
</amp-state>
<h1>Hello AMPHTML World!</h1>
<amp-list class="mt3" layout="fixed-height" height="0" [src]="myItems" [height]="myItems.length * 200" items="." binding="no">
<template type="amp-mustache">
Item: {{title}}
</template>
</amp-list>
<button type="button" on="tap:AMP.setState({
myItems: myItems.concat([currentItem])
})">
Add
</button>
我有一个名为 currentItem 的状态,带有 url、标题、描述...当我按下一个按钮时,currentItem 应该保存在另一个名为 myItems 的状态中。它将包含项目列表 objects.
现在的问题是它总是显示最后一个项目,所以它会为每个当前项目提交覆盖整个列表。
我的州:
<amp-state id="currentItem">
<script type="application/json">
{
"url": "",
"imageUrl": "",
"title": "",
"description": ""
}
</script>
</amp-state>
<amp-state id="myItems">
<script type="application/json">
[]
</script>
</amp-state>
列表定义:
<amp-list class="mt3"
layout="fixed-height"
height="0"
[src]="myItems"
[height]="myItems.length * 200"
items="."
binding="no">
<template type="amp-mustache">
...
</template>
将 currentItem 添加到列表的操作:
<button type="button"
on="tap:AMP.setState({ myItems: [currentItem]})">
Add
</button>
我尝试使用 AMP.setState({ myItems: myItems.concat(currentItem)}) 但它崩溃了,还有 +。我该怎么做?
concat
需要一个数组。这是工作版本:
<amp-state id="currentItem">
<script type="application/json">
{
"url": "url",
"imageUrl": "imageUrl",
"title": "title",
"description": "desc"
}
</script>
</amp-state>
<amp-state id="myItems">
<script type="application/json">
[]
</script>
</amp-state>
<h1>Hello AMPHTML World!</h1>
<amp-list class="mt3" layout="fixed-height" height="0" [src]="myItems" [height]="myItems.length * 200" items="." binding="no">
<template type="amp-mustache">
Item: {{title}}
</template>
</amp-list>
<button type="button" on="tap:AMP.setState({
myItems: myItems.concat([currentItem])
})">
Add
</button>