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 名称冲突的解决方法
Apr 08 Javascript
编写高效jQuery代码的4个原则和5个技巧
Apr 24 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
Apr 07 Javascript
学习AngularJs:Directive指令用法(完整版)
Apr 26 Javascript
JS鼠标3次点击事件实现代码及扩展思路
Sep 12 Javascript
jQuery实现的事件绑定功能基本示例
Oct 11 jQuery
在 webpack 中使用 ECharts的实例详解
Feb 05 Javascript
如何自动化部署项目?折腾服务器之旅~
Apr 16 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
Jul 20 Javascript
WebStorm中如何将自己的代码上传到github示例详解
Oct 28 Javascript
在nuxt中使用路由重定向的实例
Nov 06 Javascript
JS 4个超级实用的小技巧 提升开发效率
Oct 05 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
用header 发送cookie的php代码
2007/03/16 PHP
dede3.1分页文字采集过滤规则详说(图文教程)续四
2007/04/03 PHP
php下把数组保存为文件格式的实例应用
2010/02/08 PHP
探讨各种PHP字符串函数的总结分析
2013/06/05 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
2014/06/10 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
PHP封装请求类实例分析【基于Yii框架】
2019/10/17 PHP
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
AngularJS实现图片上传和预览功能的方法分析
2017/11/08 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
2018/09/27 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
总结Python编程中三条常用的技巧
2015/05/11 Python
深入理解NumPy简明教程---数组3(组合)
2016/12/17 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
对python中for、if、while的区别与比较方法
2018/06/25 Python
Django实战之用户认证(初始配置)
2018/07/16 Python
python实现浪漫的烟花秀
2019/01/30 Python
Python @property原理解析和用法实例
2020/02/11 Python
Python安装OpenCV的示例代码
2020/03/05 Python
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
Godiva巧克力英国官网:比利时歌帝梵巧克力
2018/08/28 全球购物
年终考核评语
2014/01/19 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
小学一年级学生评语
2014/04/22 职场文书
大学生个人求职信例文
2014/07/07 职场文书
2015年中学图书馆工作总结
2015/07/22 职场文书
总结Python连接CS2000的详细步骤
2021/06/23 Python