玩辅助的上单 2020-02-28 00:48 采纳率: 0%
浏览 1896

vue+elementUI表格数据修改,表格消失

新人学习vue+elementUI的时候,做一个简单的增删改查,每次表格里data的数据改了,之前的表格就会消失,麻烦路过大佬给看一下问题

<div id="test">
  <div>
    <el-table id="tab" :data="data.filter(data => !search  || data.Name.toLowerCase().includes(search .toLowerCase()))" style="width: 100%">
      <el-table-column label="姓名" prop="Name" width="180"></el-table-column>
      <el-table-column label="年龄" prop="Age" width="180"></el-table-column>
      <el-table-column label="毕业学校" prop="School" width="180"></el-table-column>
      <el-table-column label="备注" prop="Remark" width="180"></el-table-column>
      <el-table-column
        align="right">
        <template slot="header" slot-scope="scope">
          <el-input
            v-model="search "
            size="180"
            placeholder="输入姓名进行搜索"/>
        </template>
        <template slot-scope="scope">
          <el-button type="success" @click="Edit(scope.row)">编辑</el-button><el-button @click="Delete(scope.row.Id)">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
  </div>
</div>
  <div id="row">
    <div>
      <el-input v-model="savData.Name" placeholder="姓名"/>
    </div>
    <div>
      <el-input v-model="savData.Age" placeholder="年龄"/>
    </div>
    <div>
      <el-select v-model="savData.School">
        <el-option label="杨村第一小学" value="杨村第一小学"></el-option>
        <el-option label="杨村第二小学" value="杨村第二小学"></el-option>
        <el-option label="杨村第三小学" value="杨村第三小学"></el-option>
      </el-select>
    </div>
    <div>
      <el-input v-model="savData.Remark" placeholder="备注"/>
    </div>
    <div>
      <el-button type="success" @click="Save">保存</el-button>
    </div>
  </div>
    var vue = new Vue({
    el: '#test',
    data: data,
    methods: {//监听方法
      Change:function(){
        console.log(this.data)
      },
      Delete: function (id) {
        console.log(id)
        for (var i=0;i<this.data.length;i++){
          if (this.data[i].Id == id) {
            this.data.splice(i, 1);//从哪个数据开始到之后几条数据删除
            this.rowsSave.splice(i,1);
            break;
          }
        }
      },
      Edit: function (row) {
        console.log(3)
        rowSadta.savData = row;
      },
      //上一页方法
      PrePage: function (event) {
        console.log(4)
        $(".pagination .active").prev().trigger("click");
      },
      //下一页方法
      NextPage: function (event) {
        console.log(5)
        $(".pagination .active").next().trigger("click");
      },
      //点击页码的方法
      NumPage: function (num, event) {
        console.log(6)
        if (this.curpage == num) {
          return;
        }
        this.curpage = num;
        $(".pagination li").removeClass("active");
        if (event.target.tagName.toUpperCase() == "LI") {
          $(event.target).addClass("active");
        }
        else {
          $(event.target).parent().addClass("active");
        }
        if (this.curpage == 1) {
          $("#prepage").addClass("disabled");
        }
        else {
          $("#prepage").removeClass("disabled");
        }
        if (this.curpage == Math.ceil(this.data.length / this.pagesize)) {
          $("#nextpage").addClass("disabled");
        }
        else {
          $("#nextpage").removeClass("disabled");
        }
      },

    }
  });
  • 写回答

1条回答 默认 最新

  • lshen01 2023-03-17 08:35
    关注

    参考GPT和自己的思路:

    根据你提供的代码,可能是由于修改数据后没有正确更新表格的原因导致的。你可以增加一个 watch 来监听 data 对象的变化,使用 this.$nextTick() 来确保更新后再刷新表格,代码如下:

    var vue = new Vue({
      el: '#test',
      data: data,
      watch: {
        data: function (newData) {
          this.$nextTick(function () {
            // 刷新表格
            this.$refs.table.$emit('update:default-sort', undefined);
          });
        }
      },
      methods: {
        // ...其他方法
      }
    });
    

    这里,我们使用 $refs 属性来代表表格,通过 $emit 来触发 update:default-sort 事件来刷新表格,从而解决表格消失的问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?