vue中更改数组中属性,在页面中不生效的解决方法

 更新时间:2019年10月30日 09:36:01   作者:贵妇狗v_071  
今天小编就为大家分享一篇vue中更改数组中属性,在页面中不生效的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

问题描述:

使用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中更改数组中属性,在页面中不生效的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 浅谈VUE uni-app 生命周期

    浅谈VUE uni-app 生命周期

    这篇文章主要介绍了uni-app 的生命周期,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • vue Proxy数据代理进行校验部分源码实例解析

    vue Proxy数据代理进行校验部分源码实例解析

    Proxy提供了强大的Javascript元编程,有许多功能,包括运算符重载,对象模拟,简洁而灵活的API创建,对象变化事件,甚至Vue 3背后的内部响应系统提供动力,这篇文章主要给大家介绍了关于vue Proxy数据代理进行校验部分源码解析的相关资料,需要的朋友可以参考下
    2022-01-01
  • Vue 3.0的attribute强制行为理解学习

    Vue 3.0的attribute强制行为理解学习

    这篇文章主要为大家介绍了Vue 3.0的attribute强制行为理解学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • vuex + keep-alive实现tab标签页面缓存功能

    vuex + keep-alive实现tab标签页面缓存功能

    这篇文章主要介绍了vuex + keep-alive实现tab标签页面缓存功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • vue中的localStorage使用方法详解

    vue中的localStorage使用方法详解

    在Vue项目中可以直接使用localStorage,它支持Vue2和Vue3,在Vue2中,可以通过`localStorage.setItem()`、`localStorage.getItem()`和`localStorage.removeItem()`来保存、读取和删除数据,本文给大家介绍vue中的localStorage使用详解,感兴趣的朋友一起看看吧
    2025-03-03
  • vue-cli 使用axios的操作方法及整合axios的多种方法

    vue-cli 使用axios的操作方法及整合axios的多种方法

    这篇文章主要介绍了vue-cli 使用axios的操作方法及整合axios的多种方法,vue-cli整合axios的多种方法,小编一一给大家列出来了,大家根据自身需要选择,需要的朋友可以参考下
    2018-09-09
  • 解决element-ui中Popconfirm气泡确认框的事件不生效问题

    解决element-ui中Popconfirm气泡确认框的事件不生效问题

    这篇文章主要介绍了解决element-ui中Popconfirm气泡确认框的事件不生效问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Vue实现当前页面刷新的五种方法总结

    Vue实现当前页面刷新的五种方法总结

    这篇文章主要介绍了Vue中实现页面刷新的5种方法,包括使用$router.go(0)、location.reload()、通过router-view的key属性、使用v-if指令手动触发组件重新渲染,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-02-02
  • 在Vue中获取组件声明时的name属性方法

    在Vue中获取组件声明时的name属性方法

    今天小编就为大家分享一篇在Vue中获取组件声明时的name属性方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue配置proxy代理接口报错2007 bad domain的解决

    Vue配置proxy代理接口报错2007 bad domain的解决

    本文主要介绍了Vue配置proxy代理接口报错2007 bad domain的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06

最新评论