新手村常驻居民 2023-03-01 08:21 采纳率: 16%
浏览 20
已结题

使用填充数据formatter为什么最后都显示的是2

刚开始显示这样

img


使用 :formatter="abc"都显示的是2,是为什么

img

  1. <template>
  2. <el-table
  3. :data="tableData"
  4. height="250"
  5. border
  6. style="width: 100%">
  7. <el-table-column
  8. prop="date"
  9. label="日期"
  10. width="180">
  11. </el-table-column>
  12. <el-table-column
  13. prop="name"
  14. label="姓名"
  15. width="180">
  16. </el-table-column>
  17. <el-table-column
  18. prop="address"
  19. label="地址">
  20. </el-table-column>
  21. <el-table-column
  22. prop="jiBie"
  23. label="级别"
  24. :formatter="abc">
  25. </el-table-column>
  26. </el-table>
  27. </template>
  28. <script>
  29. export default {
  30. data() {
  31. return {
  32. tableData: [{
  33. date: '2016-05-03',
  34. name: '王小虎',
  35. address: '50'
  36. }, {
  37. date: '2016-05-02',
  38. name: '王小虎',
  39. address: '80'
  40. }]
  41. }
  42. },
  43. methods:{
  44. abc(fen){
  45. const a=this.tableData.length;
  46. for(let i=0;i<this.tableData.length;i++){
  47. if(this.tableData[i].address==80){
  48. return fen.jiBie=1;
  49. }else if(this.tableData[i].address==50){
  50. return fen.jiBie=2;
  51. }
  52. }
  53. }
  54. }
  55. }
  56. </script>

展开全部

  • 写回答

1条回答 默认 最新

  • 社区专家-Monster-XH 2023-03-01 08:27
    关注

    基于Monster 组和GPT的调写:
    根据提供的代码,我们可以看到在el-table-column中使用了:formatter="abc",这意味着在渲染表格列时会调用abc方法来格式化数据。

    在abc方法中,我们可以看到,无论输入参数是什么,都会遍历tableData数组,查找address属性的值是50或80的项,并将其对应的jiBie属性的值设置为1或2。

    然而,在代码中并没有指定每个表格列要显示的数据来源。因此,表格会默认使用prop属性指定的数据字段。在这个例子中,el-table-column的第四个列的prop属性是jiBie,这意味着它将使用数据对象中的jiBie属性作为数据源来渲染表格列。

    然而,在abc方法中,我们并没有为每个数据项设置jiBie属性。相反,我们只是返回一个值,并希望在el-table中自动更新每个表格单元格。这并不会发生,因为返回值并不会自动更新原始数据对象中的jiBie属性。

    因此,我们需要更新abc方法来确保它为每个数据项设置正确的jiBie属性值。我们可以修改abc方法来返回一个新的数组,其中包含每个数据项及其对应的jiBie属性值。这样,在表格中渲染每个单元格时,它将使用正确的数据来源来呈现数据。

    下面是一个更新后的代码示例:

    1. <template>
    2. <el-table
    3. :data="tableData"
    4. height="250"
    5. border
    6. style="width: 100%">
    7. <el-table-column
    8. prop="date"
    9. label="日期"
    10. width="180">
    11. </el-table-column>
    12. <el-table-column
    13. prop="name"
    14. label="姓名"
    15. width="180">
    16. </el-table-column>
    17. <el-table-column
    18. prop="address"
    19. label="地址">
    20. </el-table-column>
    21. <el-table-column
    22. prop="jiBie"
    23. label="级别"
    24. :formatter="abc">
    25. </el-table-column>
    26. </el-table>
    27. </template>
    28. <script>
    29. export default {
    30. data() {
    31. return {
    32. tableData: [{
    33. date: '2016-05-03',
    34. name: '王小虎',
    35. address: '50',
    36. jiBie: ''
    37. }, {
    38. date: '2016-05-02',
    39. name: '王小虎',
    40. address: '80',
    41. jiBie: ''
    42. }]
    43. }
    44. },
    45. methods:{
    46. abc(row){
    47. if(row.address === '50'){
    48. return 2;
    49. } else if(row.address === '80'){
    50. return 1;
    51. } else {
    52. return '';
    53. }
    54. }
    55. }
    56. }
    57. </script>

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月1日
  • 已采纳回答 3月1日
  • 修改了问题 3月1日
  • 创建了问题 3月1日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部