单击按钮后如何重置数据对象
How to reset data objects after button click
我正在创建一个按钮,可以在点击时加载更多内容。目前,单击时,它会将文本从 "Load More" 更改为 "Loading" 并禁用按钮。但是,现在该按钮仍然显示 "Loading" 并且仍处于禁用状态,因此我无法再次单击它。
我的组件 "data" 中有按钮的内部文本,但这可能不是最好的方法。
这是HTML:
<Button
v-if="allowLoadMore && morePagesAvailable"
:loading="loading"
:disabled="clicked"
@click="loadMore"
>
{{ loadMoreText }}
</Button>
这是数据:
data () {
return {
page: 1,
morePagesAvailable: false,
loadMoreText: 'Load More',
clicked: false
}
方法如下:
methods: {
loadMore () {
if (this.morePagesAvailable) {
this.page += 1
...
this.loadMoreText = 'Loading'
this.clicked = true
return this.loadMoreText
}
}
}
我想禁用按钮并仅在实际加载时才显示 "loading",这样我就可以点击直到没有更多可用页面。
假设你使用像 axios 这样的东西,你应该创建这样的东西
loadMore () {
if (this.morePagesAvailable) {
this.page += 1
...
this.loadMoreText = 'Loading'
this.clicked = true
Axios.get(...).then( resp => {
//use the resp
this.clicked = false
})
return this.loadMoreText
}
}
此外,您或许应该将 clicked 重命名为 isLoading。
我正在创建一个按钮,可以在点击时加载更多内容。目前,单击时,它会将文本从 "Load More" 更改为 "Loading" 并禁用按钮。但是,现在该按钮仍然显示 "Loading" 并且仍处于禁用状态,因此我无法再次单击它。
我的组件 "data" 中有按钮的内部文本,但这可能不是最好的方法。
这是HTML:
<Button
v-if="allowLoadMore && morePagesAvailable"
:loading="loading"
:disabled="clicked"
@click="loadMore"
>
{{ loadMoreText }}
</Button>
这是数据:
data () {
return {
page: 1,
morePagesAvailable: false,
loadMoreText: 'Load More',
clicked: false
}
方法如下:
methods: {
loadMore () {
if (this.morePagesAvailable) {
this.page += 1
...
this.loadMoreText = 'Loading'
this.clicked = true
return this.loadMoreText
}
}
}
我想禁用按钮并仅在实际加载时才显示 "loading",这样我就可以点击直到没有更多可用页面。
假设你使用像 axios 这样的东西,你应该创建这样的东西
loadMore () {
if (this.morePagesAvailable) {
this.page += 1
...
this.loadMoreText = 'Loading'
this.clicked = true
Axios.get(...).then( resp => {
//use the resp
this.clicked = false
})
return this.loadMoreText
}
}
此外,您或许应该将 clicked 重命名为 isLoading。