vue中更改数组中属性,在页面中不生效的解决方法


Posted in Javascript onOctober 30, 2019

问题描述:

使用vue的方法获取了数组数据,获取数据后为每个数据增加edit属性,初始值均为false,其目的是为了当点击列表中的编辑按钮时,控制保存与不保存的按钮的出现与消失,结果当更改数组中的edit属性后,页面并没有如预期的那样当edit为true时页面显示更改状态,当edit为false时为不更改状态

解决方案:

edit是在通过post方法获取数据后增加到vue的data数据中的属性,一开始我的做法先将接收到的数据赋值到vue的data中,再对vue的data中的数据增加edit属性,这样在改变edit的之后,虽然在js中使用console.log可以看到该值已经发生变化,但页面中的data值并没有发生变化。

正确的做法应该是先为接收到的数据初始化edit属性,再将处理后的数据赋值给vue的data。

代码如下

<tbody>
     <tr v-for="(book,index) in bookList">
      <td>
       <span v-on:click="book.edit=true" v-show=" !book.edit">{{book.orderIndex}}</span> //如果edit属性为false,则该span出现
       <input v-show="book.edit" /> //如果edit属性为true,则该input出现
      </td>
      <td>
       <a v-show="book.edit" v-on:click="book.edit=false" class="btn btn-primary btn-sm"> //如果edit属性为true,出现不保存(x)按钮
        <i class="glyphicon glyphicon-remove" aria-hidden="true"></i>
</a>
       <a v-show="book.edit" v-on:click="save(book)" class="btn btn-primary btn-sm"> //如果edit属性为true,出现保存(√)按钮
        <i class="glyphicon glyphicon-ok" aria-hidden="true"></i>
       </a>
      </td>
      
     </tr>
    </tbody>

<script>

var politics = new Vue({

el:"#politics",

data:{

bookList:[]

},

methods:{

getBookList: function (offset, limit, CatalogueID, searchKey, resId) {
    this.limit = limit;
    this.offset = offset;
    this.CatalogueID = CatalogueID;
    this.searchKey = searchKey;
    this.resId = resId;
    this.$http.get("/BookAdmin/getBookList?offset=" + this.offset + "&limit=" + this.limit + "&CatalogueID=" + this.CatalogueID + "&searchKey=" + this.searchKey+"&resId="+this.resId)
     .then(function (resp) {
      resp.data.books.forEach(function (o, i) {
       o.edit = false;
      })
      this.bookList = resp.data.books; // 赋值必须写在属性初始化的后面,否则改edit不能使页面属性变化
      this.bookTotalCount = resp.data.totalCount;
      var pageNo = this.offset / this.limit + 1;
      var totalPage = Math.ceil(this.bookTotalCount / this.limit);
      
      divpager(pageNo, totalPage, this.bookTotalCount, this.CatalogueID, this.searchKey, this.resId);
     })
   }

}

})


</script>

以上这篇vue中更改数组中属性,在页面中不生效的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE与FireFox的兼容性问题分析
Apr 22 Javascript
JS动画效果代码3
Apr 03 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
Aug 29 Javascript
js实现将选中值累加到文本框的方法
Aug 12 Javascript
JS取数字小数点后两位或n位的简单方法
Oct 24 Javascript
超全面的javascript中变量命名规则
Feb 09 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
Jul 12 Javascript
浅谈Vue.js中的v-on(事件处理)
Sep 05 Javascript
vue后台管理之动态加载路由的方法
Aug 13 Javascript
简谈创建React Component的几种方式
Jun 15 Javascript
javascript关于“时间”的一次探索
Jul 24 Javascript
通过实例解析json与jsonp原理及使用方法
Sep 27 Javascript
基于JavaScript实现单例模式
Oct 30 #Javascript
vue解决使用$http获取数据时报错的问题
Oct 30 #Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
Oct 30 #Javascript
vue请求服务器数据后绑定不上的解决方法
Oct 30 #Javascript
vue中的mescroll搜索运用及各种填坑处理
Oct 30 #Javascript
vue解决花括号数据绑定不成功的问题
Oct 30 #Javascript
vue中使用rem布局代码详解
Oct 30 #Javascript
You might like
全国FM电台频率大全 - 28 甘肃省
2020/03/11 无线电
自己动手做一个SQL解释器
2006/10/09 PHP
FCKeditor的安装(PHP)
2007/01/13 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
IE 下的只读 innerHTML
2009/08/21 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
jQuery实现进度条效果代码
2015/12/17 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
使用Javascript监控前端相关数据的代码
2016/10/27 Javascript
Vue.js第四天学习笔记(组件)
2016/12/02 Javascript
bootstrapValidator表单验证插件学习
2016/12/30 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
2017/03/21 jQuery
AngularJS中使用three.js的实例详解
2017/07/21 Javascript
Vue常见面试题整理【值得收藏】
2018/09/20 Javascript
layui 对table中的数据进行转义的实例
2019/09/12 Javascript
html-webpack-plugin修改页面的title的方法
2020/06/18 Javascript
[01:15:16]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第一场 1月26日
2021/03/11 DOTA
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
selenium+python环境配置教程详解
2019/05/28 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
python生成requirements.txt的两种方法
2019/09/18 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
Python pip配置国内源的方法
2020/02/14 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
世界上最大的街头服饰网站:Karmaloop
2017/02/04 全球购物
GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
2018/04/16 全球购物
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
介绍一下木马病毒的种类
2015/07/26 面试题
市场营销管理毕业生自荐信
2014/03/03 职场文书
小摄影师教学反思
2014/04/27 职场文书
优秀驾驶员先进事迹材料
2014/05/04 职场文书
送温暖献爱心活动总结
2014/07/08 职场文书
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android
python标准库ElementTree处理xml
2022/05/20 Python