element-ui自定义表格如何给input双向绑定数据

 更新时间:2022年10月17日 09:33:30   作者:丑小鸭变黑天鹅  
这篇文章主要介绍了element-ui自定义表格如何给input双向绑定数据,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

问题描述

有个项目需求点击添加按钮添加一行,我采用的是自定义表格,刚开始写好之后,点击添加,可以实现,但是却发现输入框不能输入数据,控制台报错

先看一下,错误的代码

这里列出了主要代码

		<el-table :data="tableData" style="width: 98%; margin-left:20px">
            <el-table-column label="属性类型" align="center">
              <el-select v-model="attrType" placeholder="请选择属性类型">
                <el-option label="区域一" value="shanghai" />
                <el-option label="区域二" value="beijing" />
              </el-select>
            </el-table-column>
            <el-table-column label="属性名称" align="center">         
                <el-input v-model="attrName" placeholder="请输入属性名称" clearable />
            </el-table-column>
            <el-table-column label="属性标识" align="center">
              <el-input v-model="attrFlag" placeholder="请输入属性标识" clearable />
            </el-table-column>
            <el-table-column label="属性映射" align="center">
              <el-input v-model="attrMap" placeholder="请输入属性映射" clearable />
            </el-table-column>
            <el-table-column label="属性单位" align="center">
              <el-input v-model="attrUnit" placeholder="请输入属性单位" clearable />
            </el-table-column>
            <el-table-column label="属性符号" align="center">
              <el-input v-model="attrSymbol" placeholder="请输入属性符号" clearable />
            </el-table-column>
            <el-table-column label="操作" align="center">
              <el-button size="mini" type="danger" @click="handleDelete(item, index)">删除</el-button>
            </el-table-column>
          </el-table>
			data () {
			    return {
			      tableData: [
			        {
			          attrType: '',
			          attrName: '',
			          attrFlag: '',
			          attrMap: '',
			          attrUnit: '',
			          attrSymbol: ''
			        }
			      ]
			    }
			  },

实现的效果

看着好像没什么问题,但是inout输入框不能输入东西,控制台报警告,后来仔细看了一下官方提供的自定义数据表格,发现缺少一些代码,

看一下官方的示例

<template>
  <el-table
    :data="tableData"
    style="width: 100%">
    <el-table-column
      label="日期"
      width="180">
      <template slot-scope="scope">
        <i class="el-icon-time"></i>
        <span style="margin-left: 10px">{{ scope.row.date }}</span>
      </template>
    </el-table-column>
    <el-table-column
      label="姓名"
      width="180">
      <template slot-scope="scope">
        <el-popover trigger="hover" placement="top">
          <p>姓名: {{ scope.row.name }}</p>
          <p>住址: {{ scope.row.address }}</p>
          <div slot="reference" class="name-wrapper">
            <el-tag size="medium">{{ scope.row.name }}</el-tag>
          </div>
        </el-popover>
      </template>
    </el-table-column>
    <el-table-column label="操作">
      <template slot-scope="scope">
        <el-button
          size="mini"
          @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
        <el-button
          size="mini"
          type="danger"
          @click="handleDelete(scope.$index, scope.row)">删除</el-button>
      </template>
    </el-table-column>
  </el-table>
</template>
<script>
  export default {
    data() {
      return {
        tableData: [{
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-04',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1517 弄'
        }, {
          date: '2016-05-01',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1519 弄'
        }, {
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1516 弄'
        }]
      }
    },
    methods: {
      handleEdit(index, row) {
        console.log(index, row);
      },
      handleDelete(index, row) {
        console.log(index, row);
      }
    }
  }
</script>

看上图,有没有发现问题所在,我出现错误的地方有两个

  • 第一个: 没有写<template slot-scope="scope">
  • 第二个:给input绑定的数据是attrName儿不是scope.row.attrName

那么scope.row和scope.column是什么东东?我们打印一下看看

所以知道我为什么把原来的attrName替换成了scope.row.attrName的原因了吧。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue中keep-alive组件使用和一些基础配置方法

    vue中keep-alive组件使用和一些基础配置方法

    本文主要介绍了Vue中keep-alive组件的使用方法和一些基础配置,keep-alive是Vue中的一个抽象组件,可以缓存组件实例,提高性能,本文给大家介绍vue中keep-alive组件使用和一些基础配置方法,感兴趣的朋友一起看看吧
    2024-10-10
  • 教你一招解决vue页面自适应布局

    教你一招解决vue页面自适应布局

    在前端开发的时候经常会遇到这样的困惑,设计师给你的设计稿的尺寸和页面的尺寸不一致,导致了页面无法正常显示,下面这篇文章主要给大家介绍了关于一招解决vue页面自适应布局的相关资料,需要的朋友可以参考下
    2022-07-07
  • Vue实现录制屏幕并本地保存功能

    Vue实现录制屏幕并本地保存功能

    这篇文章主要介绍了Vue实现录制屏幕功能并本地保存,这里用的是用的是HBuilder X开发,结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • 基于vuejs实现一个todolist项目

    基于vuejs实现一个todolist项目

    这篇文章主要为大家详细介绍了基于vuejs实现一个todolist项目,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • vue3数据监听watch/watchEffect的示例代码

    vue3数据监听watch/watchEffect的示例代码

    我们都知道监听器的作用是在每次响应式状态发生变化时触发,在组合式 API 中,我们可以使用 watch()函数和watchEffect()函数,下面我们来看下vue3如何进行数据监听watch/watchEffect,感兴趣的朋友一起看看吧
    2023-02-02
  • 详解Vue中的watch和computed

    详解Vue中的watch和computed

    这篇文章主要介绍了Vue中的watch和computed的相关资料,帮助大家更好的理解和学习vue框架,感兴趣的朋友可以了解下
    2020-11-11
  • 基于ElementUI中Table嵌套实现多选的示例代码

    基于ElementUI中Table嵌套实现多选的示例代码

    这篇文章主要介绍了基于ElementUI中Table嵌套实现多选的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 使用vue初用antd 用v-model来双向绑定Form表单问题

    使用vue初用antd 用v-model来双向绑定Form表单问题

    这篇文章主要介绍了使用vue初用antd 用v-model来双向绑定Form表单问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • vue实现多组关键词对应高亮显示功能

    vue实现多组关键词对应高亮显示功能

    最近小编遇到这样的问题,多组关键词,这里实现了关键词的背景色与匹配值的字体颜色值相同,下面通过定义关键词匹配改变字体颜色,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2019-07-07
  • vue-quill-editor 自定义工具栏和自定义图片上传路径操作

    vue-quill-editor 自定义工具栏和自定义图片上传路径操作

    这篇文章主要介绍了vue-quill-editor 自定义工具栏和自定义图片上传路径操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08

最新评论