多选表格默认选中

使用场景分析:
进入页面表格数据渲染的时候,如果数据中paid是1的话,那么这一列表格就默认选中
解决方法:
后台数据返回后,使用element中的toggleRowSelection方法,这个方法用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)

//先写一个方法
toggle(data) {
  if (data.length) {
    this.$nextTick(function() {
      data.forEach(item => {
		//如果数据中的paid == 1的话 让这一列选中
        if (item.paid == 1) {
		//multipleTable 是这个表格的ref属性 true为选中状态
        this.$refs.multipleTable.toggleRowSelection(item, true);
        }
      })
    })
  }
},
//当获取到数据的时候调用下这个方法
this.signtableData = res.data.user_info
console.log(this.signtableData)
this.toggle(this.signtableData)

如果不加this. n e x t T i c k 的 话 不 起 作 用 官 方 文 档 是 这 样 解 释 的 : V u e 在 更 新 D O M 时 是 异 步 执 行 的 , 为 了 在 数 据 变 化 之 后 等 待 V u e 完 成 更 新 D O M , 可 以 在 数 据 变 化 之 后 立 即 使 用 V u e . n e x t T i c k ( c a l l b a c k ) 。 这 样 回 调 函 数 将 在 D O M 更 新 完 成 后 被 调 用 个 人 猜 想 是 数 据 赋 值 后 还 没 有 给 D O M 绑 定 上 所 以 使 用 nextTick的话不起作用 官方文档是这样解释的:Vue 在更新 DOM 时是异步执行的,为了在数据变化之后等待 Vue 完成更新 DOM,可以在数据变化之后立即使用 Vue.nextTick(callback)。这样回调函数将在 DOM 更新完成后被调用 个人猜想是数据赋值后还没有给DOM绑定上 所以使用 nextTickVueDOMVueDOM使Vue.nextTick(callback)DOMDOM使nextTick等数据循环在dom上之后再调用这个方法就ok了

GitHub 加速计划 / eleme / element
54.06 K
14.63 K
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:1 个月前 )
c345bb45 5 个月前
a07f3a59 * Update transition.md * Update table.md * Update transition.md * Update table.md * Update transition.md * Update table.md * Update table.md * Update transition.md * Update popover.md 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐