如排序之前渲染table的数组为 :data="tableData",那么利用sortable排序后,现在的数组如何获取,我查阅了文档都没找到答案,望大神告知
如排序之前渲染table的数组为 :data="tableData",那么利用sortable排序后,现在的数组如何获取,我查阅了文档都没找到答案,望大神告知
我实验了一下,或许能力不够,没有成功获取排序后的table数组数据,只能获取当前数据与比较数据;
<el-table :data="showTable" stripe height="250" @select="selected" ref="multipleTable" @selection-change="handleSelectionChange" @row-click="handleclick"
:default-sort = "{prop: 'date', order: 'descending'}"
>
<el-table-column
type="selection"
width="55"
>
</el-table-column>
<el-table-column
prop="date"
label="日期"
:sort-method="changesort"
sortable
>
</el-table-column>
<el-table-column
prop="name"
label="姓名"
>
</el-table-column>
<el-table-column
prop="address"
label="地址"
>
</el-table-column>
</el-table>
export default{
method(){
changesort(a,b){
let oldTime= (new Date(a.date)).getTime()/1000;
let newime= (new Date(b.date)).getTime()/1000;
if(oldTime-newime>0){
// console.log(b.date)
return true;
}else{
console.log(b.date)
return false;
}
}
}
}
碰到和你一样的问题不过可以选择用this.$refs.multipleTable.$refs.elTabMultipleTable.tableData
这个数据的话是重新排序后的数据
给table设置ref为multipleTable,然后通过this.$refs.multipleTable.tableData
来获取,获取时间为监听sort-change的时候
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
根据vue的解释 prop 是单向绑定的:当父组件的属性变化时,将传导给子组件,但是不会反过来。这是为了防止子组件无意修改了父组件的状态——这会让应用的数据流难以理解。
所以我觉得排序的是内部副本,你应该拿不到,不如通过sort-method触发你对本地的data进行排序