Vue.JS倒计时不工作
Vue.JS countdown not works
我有一个价值的应用程序,但倒计时不工作好。其实我也不知道为什么。
查看{{ $parent.timer }}
i see good value.
Vue data:
data: function() {
return {
timer : 3,
...
,这是我的倒计时功能:
countdown : function(time,callback)
{
//time is equal 5
this.timer = time;
//this.timer is equal 5
var timerInterval = undefined;
timerInterval = setInterval(function() {
if(this.timer == 1) {
this.timer = 0;
callback();
return clearInterval(timerInterval);
}
// First time undefined, in 2nd is NaN
this.timer -= 1;
// NaN
}, 1000);
}
调用函数:
this.countdown(data.time,function(){ //smtng });
我做错了什么?
我希望有人能帮助我:)非常感谢!
这是this
范围的问题,如下所述:
function() {...}
在内部创建一个新的作用域。如果在这个函数中使用this
,它就不指向外部作用域。因此,Vue组件的this.timer
不会从setInterval()
内部得到更新。
() => {...}
像函数一样工作,但不创建一个新的作用域。
检查以下代码是否有效:
timerInterval = setInterval(() => {
if(this.timer == 1) {
this.timer = 0; // `this` points to the scope of Vue component
callback();
// ...
}
// ...
}, 1000);
关于箭头函数的更多信息:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- 我的时间倒计时脚本在谷歌浏览器中工作正常,但在其他浏览器中打开时它显示为南楠
- JavaScript倒计时;不能在Safari中工作
- Javascript倒计时;不能在Safari或IE中工作
- 如何让这个倒计时工作为周一,周二和其他时间
- 在让jquery进入工作的最后倒计时时遇到问题
- setinterval倒计时工作不正常
- Javascript倒计时不为php循环工作
- Javascript:重新启动倒计时计时器并没有像我期望的那样工作
- 重置倒计时间隔与clearInterval不工作
- Jquery倒计时显示NaN在Safari,在Chrome / Firefox工作良好
- setInterval -没有按照预期的倒计时计时工作
- 倒计时定时器不工作
- Vue.JS倒计时不工作
- Javascript倒计时不能正常工作
- 类似gmail的倒计时定时器不工作
- 倒计时定时器工作停止在chrome扩展
- 让FlipClock JS像倒计时一样工作
- 如何将jQuery倒计时附加到代码中并使其工作
- 倒计时计时器不能与AJAX一起工作