我是绑定row-click点击事件,获取row的参数,修改它。
table的row-class-name 没有触发更新,怎么回事?
row里的数据没有被绑定上去?
想实现的效果就是点击一行数据,就修改这一行的样式。
我是绑定row-click点击事件,获取row的参数,修改它。
table的row-class-name 没有触发更新,怎么回事?
row里的数据没有被绑定上去?
想实现的效果就是点击一行数据,就修改这一行的样式。
官方demo,应该没问题吧~
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-class-name="tableRowClassName">
<el-table-column
prop="date"
label="日期"
width="180">
</el-table-column>
<el-table-column
prop="name"
label="姓名"
width="180">
</el-table-column>
<el-table-column
prop="address"
label="地址">
</el-table-column>
</el-table>
</template>
<style>
.el-table .warning-row {
background: oldlace;
}
.el-table .success-row {
background: #f0f9eb;
}
</style>
<script>
export default {
methods: {
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'warning-row';
} else if (rowIndex === 3) {
return 'success-row';
}
return '';
}
},
data() {
return {
tableData: [{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}]
}
}
}
</script>
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
昨天自己解决了,是因为vue的data绑定的问题。
data里面对象的属性直接修改不会触发数据绑定。那修改该对象的属性,就不会触发table的更新,row-class-name自然也不会更新。导致点击按钮也没用。
直接给this.对象赋值,就触发数据绑定。在这之前操作数据再赋值就没问题了。