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中的View-Model使用介绍
Aug 11 Javascript
使用jQuery实现星级评分代码分享
Dec 09 Javascript
举例讲解AngularJS中的模块
Jun 17 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
May 07 Javascript
JS hashMap实例详解
May 26 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
Oct 26 Javascript
使用jquery实现的循环连续可停顿滚动实例
Nov 23 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
Feb 18 Javascript
AngularJS获取json数据的方法详解
May 27 Javascript
微信小程序之数据缓存的实例详解
Sep 29 Javascript
Node.js 多进程处理CPU密集任务的实现
May 26 Javascript
Vue+element-ui添加自定义右键菜单的方法示例
Dec 08 Vue.js
基于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
支持oicq头像的留言簿(一)
2006/10/09 PHP
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
php之XML转数组函数的详解
2013/06/07 PHP
PHP中的use关键字概述
2014/07/23 PHP
必须收藏的23个php实用代码片段
2016/02/02 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
JQuery复制DOM节点的方法
2015/06/11 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
2015/10/22 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
2017/02/16 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
2017/03/01 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
jQuery-ui插件sortable实现自由拖动排序
2018/12/01 jQuery
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
JS利用prototype给类添加方法操作详解
2019/06/21 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
[54:57]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第二场 1月8日
2021/03/11 DOTA
django缓存配置的几种方法详解
2018/07/16 Python
python一键去抖音视频水印工具
2018/09/14 Python
Python调用服务接口的实例
2019/01/03 Python
Python中关于浮点数的冷知识
2019/09/22 Python
使用python实现画AR模型时序图
2019/11/20 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
英国儿童家具专卖店:GLTC
2016/09/24 全球购物
全球性的在线购物网站:Zapals
2017/03/22 全球购物
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
汇科协同Java笔试题
2012/03/31 面试题
秋季开学典礼主持词
2014/03/19 职场文书
大学生精神文明先进个人事迹材料
2014/05/02 职场文书
个人承诺书格式范文
2015/04/29 职场文书
感恩的心主题班会
2015/08/12 职场文书
python如何读取.mtx文件
2021/04/22 Python