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 + Flex 通过拖拽方式动态改变图片的代码
Aug 03 Javascript
30个精美的jQuery幻灯片效果插件和教程
Aug 23 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
Apr 12 Javascript
js 动态修改css文件用到了cssRule
Aug 20 Javascript
JS实现随机乱撞彩色圆球特效的方法
May 05 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
Dec 15 Javascript
js创建对象的方法汇总
Jan 07 Javascript
基于JavaScript实现的顺序查找算法示例
Apr 14 Javascript
Angular2使用vscode断点调试ts文件的方法
Dec 13 Javascript
vue 指令之气泡提示效果的实现代码
Oct 18 Javascript
Vue slot用法(小结)
Oct 22 Javascript
微信小程序实现加入购物车滑动轨迹
Nov 18 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
ThinkPHP php 框架学习笔记
2009/10/30 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
Yii2.0 RESTful API 基础配置教程详解
2018/12/26 PHP
JavaScipt基本教程之JavaScript语言的基础
2008/01/16 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
JS实现图片放大镜效果的方法
2015/02/27 Javascript
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
javascript实现base64 md5 sha1 密码加密
2015/09/09 Javascript
通用javascript代码判断版本号是否在版本范围之间
2015/11/29 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
JQuery点击事件回到页面顶部效果的实现代码
2016/05/24 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
vue.config.js中配置Vue的路径别名的方法
2020/02/11 Javascript
使用url_helper简化Python中Django框架的url配置教程
2015/05/30 Python
Python中利用xpath解析HTML的方法
2018/05/14 Python
python获取中文字符串长度的方法
2018/11/14 Python
python pandas库的安装和创建
2019/01/10 Python
Django实现学生管理系统
2019/02/26 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
解决tensorflow读取本地MNITS_data失败的原因
2020/06/22 Python
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
荷兰超市:DEEN
2018/03/14 全球购物
冰淇淋开店创业计划书
2014/02/01 职场文书
蜜蜂引路教学反思
2014/02/04 职场文书
环保倡议书100字
2014/05/15 职场文书
单位授权委托书范文
2014/08/02 职场文书
幼儿园小班家长评语
2014/12/30 职场文书
安全教育片观后感
2015/06/17 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫