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 相关文章推荐
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
Oct 01 Javascript
HTML中Select不用Disabled实现ReadOnly的效果
Apr 07 Javascript
javascript中的new使用
Mar 20 Javascript
JqGrid web打印实现代码
May 31 Javascript
js给onclick事件赋值,动态传参数实例解说
Mar 28 Javascript
js中自定义方法实现停留几秒sleep
Jul 11 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
Aug 25 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
Jul 07 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
Apr 12 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
Oct 14 jQuery
详解JavaScript之Array.reduce源码解读
Nov 01 Javascript
Js实现粘贴上传图片的原理及示例
Dec 09 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
用php解析html的实现代码
2011/08/08 PHP
PHP中常用的转义函数
2014/02/28 PHP
PHP单例模式详解及实例代码
2016/12/21 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
javascript实现的listview效果
2007/04/28 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
2014/02/13 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
2014/07/02 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
2016/08/09 Javascript
jQ处理xml文件和xml字符串的方法(详解)
2016/11/22 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
js时间戳与日期格式之间转换详解
2017/12/11 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
JavaScript命名空间模式实例详解
2019/06/20 Javascript
微信小程序实现点击卡片 翻转效果
2019/09/04 Javascript
Servlet返回的数据js解析2种方法
2019/12/12 Javascript
node.JS路径解析之PATH模块使用方法详解
2020/02/06 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
2020/04/20 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
python利用不到一百行代码实现一个小siri
2017/03/02 Python
pandas series序列转化为星期几的实例
2018/04/11 Python
pandas 选择某几列的方法
2018/07/03 Python
python设置中文界面实例方法
2020/10/27 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
韩国爱茉莉太平洋化妆品美国站:Amore Pacific US
2016/10/28 全球购物
城市精细化管理实施方案
2014/03/04 职场文书
2014年世界艾滋病日演讲稿
2014/11/28 职场文书
英文产品推荐信
2015/03/27 职场文书
婚礼必备主持词范本!
2019/07/23 职场文书
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL