iview的table 组件展开事件能否绑定到其他事件上?看这里!

简介: iview的table 组件展开事件能否绑定到其他事件上?看这里!

20190719114135105.png


许多小伙伴在使用iview的table表格展开列的时候可能会碰到一个问题,就是它的列展开事件能否去绑定到你正在点击当前列的某一个自定义按钮上呢?

 

20190719114344134.png

去查看官网的时候,官网文档也只说了个有个属性_expanded 设置为true 的情况下可以打开当前列。


不过百度了下发现大多数人还是不清楚如何让两者进行联动。事件进行绑定呢?


首先。我们先要去项vue的的原理是什么?


数据驱动视图。


当我们要改变某一个显示的时候我们则要改变的是某一个数据,而不是强加绑定事件。


当然你要是找到事件也行。如果找不到的情况下,我们可以通过数据改变来进行默认展开某一列。当然很多人已经试过了直接给某一列数据加上 _expanded :true 改变是没有作用的。


是因为,你当前数据已经被渲染上了,而表格的渲染则需要你重新调用表格更新方法。


当你的表格更新是默认放在created 或者其他页面一加载就出现的属性的时候,这时候你则需要去改变当前的data数据,也就是你当前表格绑定的数据。


首先,深拷贝当前table 数据到一个新数组。


然后将当前的新数组中你正在点击列的 _expanded  属性改成true


然后将这个新数组重新赋值给data。


这时候你再去试就会发现效果触发了。


其实原理很简单。就是,当你点击某一列按钮的时候 去重置了整个表格的data,也相当于调用了新的数据获取方法。


这时候属性才是生效的。


public addCallHost(params) {
    let arr = [];
    this.data.forEach(element => {
      arr.push(element);
    });
    arr[0]._expanded = true;
    this.data = arr;
}


目录
相关文章
|
JavaScript 前端开发
vue中在父组件点击按钮触发子组件的事件
vue中在父组件点击按钮触发子组件的事件
724 0
vue中在父组件点击按钮触发子组件的事件
|
6月前
|
JavaScript
大事件项目06-注册功能_点击事件和拿到数据
大事件项目06-注册功能_点击事件和拿到数据
|
7月前
|
JavaScript 前端开发
vue动态class与触发事件点击
vue动态class与触发事件点击
102 0
uiu
|
JavaScript 调度
【Svelte】-(5)DOM事件 / 事件修饰符 / 组件事件 / 事件转发 (组件之间的事件沟通)
【Svelte】-(5)DOM事件 / 事件修饰符 / 组件事件 / 事件转发 (组件之间的事件沟通)
uiu
214 0
【Svelte】-(5)DOM事件 / 事件修饰符 / 组件事件 / 事件转发 (组件之间的事件沟通)
element表单组件的trigger表单验证逻辑规则
校验元素trigger属性值应该怎么选择?
358 0
|
前端开发
【React工作记录七十一】直接用ref控制子组件弹框的开启
【React工作记录七十一】直接用ref控制子组件弹框的开启
121 0
Revit空闲事件(Idling Event)增强和外部事件(External Event)
Revit空闲事件(Idling Event)增强和外部事件(External Event)
Revit空闲事件(Idling Event)增强和外部事件(External Event)
|
前端开发 开发者
在 React 中为按钮绑定点击事件2|学习笔记
快速学习在 React 中为按钮绑定点击事件2
112 0
|
前端开发 JavaScript 开发者
在 React 中为按钮绑定点击事件1|学习笔记
快速学习在 React 中为按钮绑定点击事件1
508 0
|
JavaScript 前端开发 API