我用 Alpine JS 创建了一个简单的倒计时,但是当计时器为 0 时,出现错误。首先在x-data中声明函数appTimer。
<div x-data="appTimer()">
<div x-show="active">
<template x-if="countdown > 0">
<div>
<div>Counting down</div>
<div x-text="countdown"></div>
</div>
</template>
<template x-if="countdown === 0">
Countdown completed!
</template>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这段代码JS,这里设置了active、倒计时和window.setInterval。
<script>
function appTimer()
{
return {
active: true,
countdown: 5,
init() {
window.setInterval(() => {
if(this.countdown > 0) this.countdown = this.countdown - 1; console.log(this.countdown)}, 1000)
}
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
问题是您将文本而不是 html 放入模板中,alpine 尝试获取模板中定义的 html 但没有找到任何内容,因此会感到困惑,要解决此问题,您只需将消息包装在html 元素,例如:
<template x-if="countdown === 0">
<div>Countdown completed!</div>
</template>
Run Code Online (Sandbox Code Playgroud)
看看这个stackblitz 复制品
| 归档时间: |
|
| 查看次数: |
5282 次 |
| 最近记录: |