用vue做倒计时遇到个问题

图片描述

求问 大家写定时循环触发的功能都是在哪个生存期写啊?

现在的情况是控制台没有报错, 但是页面并没有把cutedown_str对应的数据传给view层,

用vm.$log()观察 数据是在按照要求定时变化的 ,

但是不同步到view,求救~

回答:

其实你的放哪里都行, created 和 ready 都行,无非就是起作用的时间不一样而已。

不过建议你放在 ready里面,这个时期已经渲染完成了。

那么你的问题是 你使用了一个变量来当中间值,但是vue的框架,监听的第一次赋值之后的东西,并不会监听你自己声明的变量,

所以你该this.goods_list。 考虑到放到setInterval里面的this会发生变化。

修改为

ready: function(){

let self = this;

setInvertal(function(){

for(let k in self.goods_list){

.......

}

}, 1000)

}

回答:

http://jsfiddle.net/GanNing/17godjz2/

var count=0;

var vue = new Vue({

el: '#app',

data: {

"list":[{"time":"0"}]

},

"created":function(){

var _this = this;

setInterval(function(){

for(var i=0;i<_this.list.length; i++){

var temp = _this.list[i];

temp.time = count;

_this.list.$set(i,temp);

}

count++;

},1000)

}

})

http://cn.vuejs.org/guide/list.html 参考章节。针对数组内元素的修改,需要使用 $set才能被vue检测到变化,从而更新DOM

回答:

能把view代码贴出来吗?或者你用ready试一试。created的时候,dom还没开始渲染。

以上是 用vue做倒计时遇到个问题 的全部内容, 来源链接: utcz.com/a/149354.html

回到顶部