详解使用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 相关文章推荐
javascript 单例/单体模式(Singleton)
Apr 07 Javascript
jQuery插件分享之分页插件jqPagination
Jun 06 Javascript
使用js获取图片原始尺寸
Dec 03 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
Sep 08 Javascript
RequireJS简易绘图程序开发
Oct 28 Javascript
jquery select2的使用心得(推荐)
Dec 04 Javascript
微信小程序实现皮肤功能(夜间模式)
Jun 18 Javascript
使用D3.js创建物流地图的示例代码
Jan 27 Javascript
angular4笔记系列之内置指令小结
Nov 09 Javascript
详解小程序用户登录状态检查与更新实例
May 15 Javascript
webpack4从0搭建组件库的实现
Nov 29 Javascript
前端vue+express实现文件的上传下载示例
Feb 18 Vue.js
如何使用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多图上传小程序代码
2011/07/17 PHP
php接口与接口引用的深入解析
2013/08/09 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
PHP实现计算器小功能
2020/08/28 PHP
Prototype RegExp对象 学习
2009/07/19 Javascript
jQuery 幻灯片插件(带缩略图功能)
2011/01/24 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
深入理解JavaScript系列(39):设计模式之适配器模式详解
2015/03/04 Javascript
Javascript中的getUTCDay()方法使用详解
2015/06/10 Javascript
JS判断键盘是否按的回车键并触发指定按钮点击操作的方法
2017/02/13 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
原生JS实现移动端web轮播图详解(结合Tween算法造轮子)
2017/09/10 Javascript
vue 使用外部JS与调用原生API操作示例
2019/12/02 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
Python实现屏幕截图的代码及函数详解
2016/10/01 Python
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
2018/07/11 Python
Django中的文件的上传的几种方式
2018/07/23 Python
python reverse反转部分数组的实例
2018/12/13 Python
python每天定时运行某程序代码
2019/08/16 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
个人思想理论学习的自我鉴定
2013/11/30 职场文书
化工操作工岗位职责
2014/04/29 职场文书
小学生一分钟演讲稿
2014/08/26 职场文书
售后服务承诺函格式
2015/01/21 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
致创业的您:这类人不适合餐饮创业
2019/08/19 职场文书