搜索
javascript - 用vue做倒计时遇到个问题
PHP中文网
PHP中文网 2017-04-10 16:24:53
[JavaScript讨论组]

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

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

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

但是不同步到view,求救~

PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
高洛峰

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

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

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

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

修改为

ready: function(){
    let self = this;
    setInvertal(function(){
        for(let k in self.goods_list){
            .......
        }
    }, 1000)
}
PHP中文网

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#v-for 参考章节。针对数组内元素的修改,需要使用 $set才能被vue检测到变化,从而更新DOM

黄舟

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号