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 相关文章推荐
jQuery之ajax技术的详细介绍
Jun 19 Javascript
js加入收藏以及使用Jquery更改透明度
Jan 26 Javascript
flash遮住div问题的正确解决方法
Feb 27 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
Apr 14 Javascript
JavaScript中setTimeout的那些事儿
Nov 14 Javascript
canvas实现环形进度条效果
Mar 23 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
Sep 14 Javascript
angular4模块中给标签添加背景图的实现方法
Sep 15 Javascript
基于Datatables跳转到指定页的简单实例
Nov 09 Javascript
Nuxt配合Node在实际生产中的应用详解
Aug 07 Javascript
uni-app 组件里面获取元素宽高的实现
Dec 27 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
Nov 16 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 删除无限级目录与文件代码共享
2008/11/22 PHP
php 取得瑞年与平年的天数的代码
2009/08/10 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
2016/09/01 PHP
php使用pecl方式安装扩展操作示例
2019/08/12 PHP
js判断是否为ie的方法小结
2014/01/13 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
JavaScript之AOP编程实例
2015/07/17 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
2016/02/18 Javascript
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
JavaScript递归算法生成树形菜单
2017/08/15 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
深入理解JavaScript 箭头函数
2019/05/30 Javascript
layui上传图片到服务器的非项目目录下的方法
2019/09/26 Javascript
python判断端口是否打开的实现代码
2013/02/10 Python
初学Python实用技巧两则
2014/08/29 Python
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
Python实现提取谷歌音乐搜索结果的方法
2015/07/10 Python
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
浅析python实现scrapy定时执行爬虫
2018/03/04 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
Python+OpenCV实现图像融合的原理及代码
2018/12/03 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
Django实现whoosh搜索引擎使用jieba分词
2020/04/08 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
本科生个人求职自荐信
2013/09/26 职场文书
餐厅经理岗位职责范本
2014/02/17 职场文书
股权收购意向书
2014/04/01 职场文书
投标人法定代表人授权委托书格式
2014/09/28 职场文书
湖南省党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
2015年校长新年寄语
2014/12/08 职场文书
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫
Python开发五子棋小游戏
2022/05/02 Python
hive数据仓库新增字段方法
2022/06/25 数据库