在开发过程中,会遇到这样的需求,用到了 Table 组件,但是一进来页面需要默认选中某些项……
前期的 iView 的安装以及引用就不赘述了,直接切入主题:
html 结构如下:
| <!-- | |
| demodata:table 的一个标识(也可以理解成一个名字) | |
| liststyle:定义 table 需要的格式及其关键字 | |
| listdata:指 table 具体的数据 | |
| --> | |
| <Table ref="demodata" :columns="liststyle" :data="listdata" border></Table> | 
接下来,就是配置 js 部分了
| data(){ | |
| return{ | |
| liststyle : [ //table 数据格式 | |
|                 { | |
| type: 'selection', | |
| }, | |
|                 { | |
| title: '名字', | |
| key: 'name', | |
| }, | |
|                 { | |
| title: '年龄', | |
| key: 'age', | |
| }, | |
| ], | |
| listdata : [ //table 具体数据 | |
|                 { | |
| name : '李云曦', | |
| age : '18' | |
| }, | |
|                 { | |
| name : '王宏远', | |
| age : '13' | |
| }, | |
|                 { | |
| name : '欧阳舒影', | |
| age : '20' | |
| }, | |
| ], | |
|         } | |
| }, | 
到这里,一个基本的表格就展现出来了
接下来,再来探讨如何实现默认选中的功能:在具体数据每一项添加_checked:true 就可以实现默认选中
tips:数据如果是后台接口获取的,也可以动态设置这个属性实现默认选中
| { | |
| name : '李云曦', | |
| age : '18', | |
| _checked : true //true表示选中 | |
| }, | 
还有另一种方法:不需要上面的设置,利用 <font color="#dd0000">this.$refs.table 的 ref 属性值.objData [index]._isChecked = true</font>
| // 通过 this.$refs.demodata 获取到对应的 table,再通过 objData 设置对应索引的_isChecked 的 true/false | |
| //this.$refs.table 的 ref 属性值.objData [index]._isChecked = true | |
| this.$refs.demodata.objData[1]._isChecked = true; // 设置选中第一项 | 
个人理解两者的区别:第一种是在操作数据,更符合 vue;而通过 ref 的方式找到的是对应的 DOM,然后操作该 DOM 上的属性。
