详解使用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.boxy插件的iframe扩展代码
Jul 02 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
Sep 10 Javascript
js动态修改整个页面样式达到换肤效果
May 23 Javascript
JavaScript常用基础知识强化学习
Dec 09 Javascript
AngularJS动态加载模块和依赖的方法分析
Nov 08 Javascript
jQuery实现可移动选项的左右下拉列表示例
Dec 26 Javascript
详解使用Node.js 将txt文件转为Excel文件
Jul 05 Javascript
老生常谈JS中的继承及实现代码
Jul 06 Javascript
vue.js iview打包上线后字体图标不显示解决办法
Jan 20 Javascript
JavaScript如何操作css
Oct 24 Javascript
React服务端渲染原理解析与实践
Mar 04 Javascript
利用uni-app生成微信小程序的踩坑记录
Apr 05 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
用文本文件制作留言板提示(下)
2006/10/09 PHP
PHP完整的日历类(CLASS)
2006/11/27 PHP
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
捕获键盘事件(且兼容各浏览器)
2013/07/03 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
2017/03/01 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
2017/03/08 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
2018/03/29 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
2019/09/07 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
python3生成随机数实例
2014/10/20 Python
python类继承与子类实例初始化用法分析
2015/04/17 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
Django中login_required装饰器的深入介绍
2017/11/24 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
美国和加拿大房车出售在线分类广告:RVT.com
2018/04/23 全球购物
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
西班牙品牌鞋子、服装和配饰在线商店:Esdemarca
2021/02/17 全球购物
Javascript如何发送一个Ajax请求
2015/01/26 面试题
数控专业毕业生自荐信范文
2014/03/04 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
党员群众路线承诺书
2014/05/20 职场文书
2014年科研工作总结
2014/12/03 职场文书
感恩教育观后感
2015/06/17 职场文书
公司回复函格式
2015/07/14 职场文书
开学随笔
2015/08/15 职场文书
入党转正申请书范文
2019/05/20 职场文书
深入解析MySQL索引数据结构
2021/10/16 MySQL