为了账号安全,请及时绑定邮箱和手机立即绑定

vue created里新添加的属性,视图不会更新

vue created里新添加的属性,视图不会更新

扬帆大鱼 2018-10-11 18:14:52
li元素的marginTop没有变化,而如果改变的是name,li元素一直变化,为什么noticeDatad在created里新添加的属性无效呢?<ul v-for="(item,index) in noticeData">    <li :style="{marginTop: item.marginTop + 'px'}">{{ item.name }}</li></ul> new Vue({    el: '#app',    data: {        noticeData: [{            id: 1,            name: '国庆大促销!全场5折'        }, {            id: 2,            name: '国庆大促销!全场8折'        }, {            id: 3,            name:' 国庆大促销!全场20折'        }],    },    created: function() {        var self = this;        self.noticeData.forEach(function(item){            item.marginTop = 0;        });        self.$nextTick(function(){            var i = 0;            setInterval(function(){                i += 2;                self.noticeData[0].marginTop = -i;                //self.noticeData[0].name= -i;            },1000);        });    }})
查看完整描述

1 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

是因为这段代码的问题

self.noticeData.forEach(function(item){
            item.marginTop = 0;
});

换成这样既可

self.noticeData.forEach(function(item, index){    self.$set(self.noticeData[index], 'marginTop', 0);
});

具体可以看链接


查看完整回答
反对 回复 2018-11-29
  • 1 回答
  • 0 关注
  • 1332 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号