详解使用element-ui table组件的筛选功能的一个小坑


Posted in Javascript onNovember 02, 2018

使用element-ui table组件的筛选功能的一个小坑

使用自定义模板和筛选功能,一开始的代码

<el-table-column v-if="key==='isShow'" label="是否在发现页展示" :filters="[{text:'已展示',value: true},{text: '未展示', value: false}]" :filter-method="filterShow">
        <template slot-scope="scope">
          <el-tag type="success" v-if="scope.row.isShow">显示</el-tag>
          <el-tag type="danger" v-else>不显示</el-tag>
        </template>
      </el-table-column>
      <el-table-column v-else-if="key==='isHandle'" label="是否已经审核" :filters="[{text:'已处理',value: true},{text: '未处理', value: false}]" :filter-method="filterHandle">
        <template slot-scope="scope">
          <el-tag type="info" v-if="scope.row.isHandle">已处理</el-tag>
          <el-tag type="warning" v-else>未处理</el-tag>
        </template>
      </el-table-column>

然后发现筛选功能怎么都不能实现,上网查找原因才发现,虽然官网在写自定义模板的示例代码时是这样的:

<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>

就是使用scope代替了prop,就是没有加上prop。

这就是坑所在地方,element的内部使用筛选功能时应该是使用到了prop,所以加上prop之后筛选功能就可以用了:

<el-table-column v-if="key==='isShow'" label="是否在发现页展示" prop="isShow" :filters="[{text:'已展示',value: true},{text: '未展示', value: false}]" :filter-method="filterShow">
        <template slot-scope="scope">
          <el-tag type="success" v-if="scope.row.isShow">显示</el-tag>
          <el-tag type="danger" v-else>不显示</el-tag>
        </template>
      </el-table-column>
      <el-table-column v-else-if="key==='isHandle'" label="是否已经审核" prop="isHandle" :filters="[{text:'已处理',value: true},{text: '未处理', value: false}]" :filter-method="filterHandle">
        <template slot-scope="scope">
          <el-tag type="info" v-if="scope.row.isHandle">已处理</el-tag>
          <el-tag type="warning" v-else>未处理</el-tag>
        </template>
      </el-table-column>

使用elementUi 的table组件的筛选功能记得加prop!!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
Apr 18 Javascript
深入理解JavaScript定时机制
Oct 29 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器
Jun 21 Javascript
jquery控制表单输入框显示默认值的方法
May 22 Javascript
Node.js实现兼容IE789的文件上传进度条
Sep 02 Javascript
微信小程序 action-sheet底部菜单详解
Oct 27 Javascript
axios学习教程全攻略
Mar 26 Javascript
详解Angular Karma测试的持续集成实践
Nov 15 Javascript
vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
Apr 14 Javascript
JavaScript中使用Spread运算符的八种方法总结
Jun 18 Javascript
原生JS实现微信通讯录
Jun 18 Javascript
JavaScript canvas实现流星特效
May 20 Javascript
如何使用vuex实现兄弟组件通信
Nov 02 #Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
Nov 02 #Javascript
vue头部导航动态点击处理方法
Nov 02 #Javascript
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
Nov 02 #Javascript
vue单页面实现当前页面刷新或跳转时提示保存
Nov 02 #Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
Nov 02 #Javascript
Bootstrap的aria-label和aria-labelledby属性实例详解
Nov 02 #Javascript
You might like
php中通过curl smtp发送邮件
2012/06/05 PHP
分享PHP header函数使用教程
2013/09/05 PHP
PHP利用header跳转失效的解决方法
2014/10/24 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
2015/03/10 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
JS数学函数Exp使用说明
2012/08/09 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
2015/10/08 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
基于VUE实现判断设备是PC还是移动端
2020/07/03 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
浅谈Python中的数据类型
2015/05/05 Python
讲解Python中运算符使用时的优先级
2015/05/14 Python
python方向键控制上下左右代码
2018/01/20 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
python读取各种文件数据方法解析
2018/12/29 Python
python实现的生成word文档功能示例
2019/08/23 Python
python中必要的名词解释
2019/11/20 Python
Django values()和value_list()的使用
2020/03/31 Python
python中判断文件结束符的具体方法
2020/08/04 Python
HTML5 中新的全局属性(整理)
2013/07/31 HTML / CSS
Java如何支持I18N?
2016/10/31 面试题
办公室助理岗位职责
2013/12/25 职场文书
四年级语文教学反思
2014/02/05 职场文书
个人租房协议书
2014/04/09 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
小程序实现筛子抽奖
2021/05/26 Javascript
Golang 对es的操作实例
2022/04/20 Golang