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 相关文章推荐
js event事件的传递与冒泡处理
Dec 06 Javascript
JQuery live函数
Dec 24 Javascript
浏览器常用高宽的jquery插件
Feb 24 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
Feb 02 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
Sep 26 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
Mar 01 Javascript
原生js实现水平方向无缝滚动
Jan 10 Javascript
解决给dom元素绑定click等事件无效问题的方法
Feb 17 Javascript
Swiper实现轮播图效果
Jul 03 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
Jun 25 Javascript
微信小程序实现下拉菜单切换效果
Mar 30 Javascript
javascript中闭包closure的深入讲解
Mar 03 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 和 MySQL 基础教程(四)
2006/10/09 PHP
php设计模式 Builder(建造者模式)
2011/06/26 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
2016/06/06 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
使用iframe window的scroll方法控制iframe页面滚动
2014/03/05 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
javascript中BOM基础知识总结
2017/02/14 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
vue+webpack dev本地调试全局样式引用失效的解决方案
2019/11/12 Javascript
Vue-axios-post数据后端接不到问题解决
2020/01/09 Javascript
原生js实现html手机端城市列表索引选择城市
2020/06/24 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
[01:34:42]NAVI vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python结合selenium获取XX省交通违章数据的实现思路及代码
2016/06/26 Python
python实现录音小程序
2020/10/26 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
2019/08/30 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
2020/06/08 Python
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
自我鉴定思想方面
2013/10/07 职场文书
面试求职的个人自我评价
2013/11/16 职场文书
电子银行营销方案
2014/02/22 职场文书
交通事故赔偿协议书
2014/04/15 职场文书
四风问题自查自纠工作情况报告
2014/10/28 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
学雷锋日活动总结
2015/02/06 职场文书
Python实现打乒乓小游戏
2021/09/25 Python
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫