avalon数据更新,页面视图未更新
我用avalon做了一个获取手机验证码的页面,在获取验证码后一定时间内不能再次获取,有倒计时,第一次倒计时正常显示,再次获取时倒计时无法正常显示,但是后台数据的确变了
因为测试所以将时间改为3,看右侧控制台变量的确减小,但是视图一直是3
// html
<div class="form-item">
<span>手机号</span>
<input type="text" placeholder="请输入手机号" :duplex="@phoneNum" maxlength="11" :keyup="@numKeyUp">
<a :click="@getVerificationCode">{{@canGetCodeFlg?'获取验证码':'重新获取('+@canGetCodeTime+')'}}</a>
</div>
// js
getVerificationCode:function () {
if(this.canGetCodeFlg && this.regPhone.test(this.phoneNum)){
// 发送请求验证码
// 设置不能再次点击获取验证码 && 开始倒计时
this.canGetCodeFlg = false;
this.countDown();
}else if(this.canGetCodeFlg){
// 手机号格式错误
this.phoneErr = true;
alert('请输入正确得手机号')
}
},
countDown:function () {
var timer = setInterval(function () {
if(this.canGetCodeTime > 0){
console.log(this.canGetCodeTime)
this.canGetCodeTime--;
}else{
// 重置
this.canGetCodeTime = 3;
this.canGetCodeFlg = true;
clearInterval(timer);
}
}.bind(this),1000)
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我的解决方案是把判断移到$computed内执行
但是你要问为什么你的视图为什么不改变, 可能得让司徒正美老师来解答. 而且官网文档也说了, 不要在绑定属性内混入插值表达式. 复杂的判断最好在JS内写.