javascript - vue更新组件的视图的问题
怪我咯
怪我咯 2017-04-11 12:24:51
[JavaScript讨论组]

自己写一个vue的组件,打算在一开始用ajax请求数据并且更新组件视图,结果发现组件视图并没有同步更新...

var MyComponent = Vue.extend({
    template: '#indexpage',

    data: function() {
        return {
            show1: true,
            article:[]
        }
    },
    ready:function(){
        console.log("hello created");
        var that = this;
        reqwest('/getsomearticle', function (data) {
            console.log(data);
            // var mydata=JSON.stringify(data);
            console.log(data[0]);
            for (var i = 0; i < 5; i++) {
                that.article[i]=data[i];
            }
            console.log("article",that.article);
        });
        setTimeout(function(){console.log(that.article)},3000);//
        setTimeout(function(){console.log(this.article)},3000);//underfined
        // that.article=[{title:"this is a title",content:"this is a content"},{title:"this is a title",content:"this is a content"}];
    },
    //...other code
}

还有一个奇怪的事情是:

我写了两个settimeout的打印用来测试,奇怪的是第二个总是输出underfined,这个是为什么呢?和视图不更新有没有关系呢?

希望高手指点一二

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(1)
阿神
  1. 更新元素用$set方法或者内置的变异方法

  2. 因为在setTimeout里,this所指向的环境是window,而不是通过vue构造的实例对象,所以返回undefined

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

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