详解使用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 相关文章推荐
一款js和css代码压缩工具[附JAVA环境配置方法]
Apr 16 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
Mar 28 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
Oct 08 Javascript
JavaScript实现的日期控件具体代码
Nov 18 Javascript
jquery浏览器滚动加载技术实现方案
Jun 03 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
Nov 18 Javascript
JavaScript判断DIV内容是否为空的方法
Jan 29 Javascript
js获取json中key所对应的value值的简单方法
Jun 17 Javascript
ES6新数据结构Map功能与用法示例
Mar 31 Javascript
详解如何使用nvm管理Node.js多版本
May 06 Javascript
如何利用vue实现波谱拟合详解
Nov 05 Javascript
详解Typescript里的This的使用方法
Jan 08 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实时显示输出
2008/10/02 PHP
PHP Directory 函数的详解
2013/03/07 PHP
php生成圆角图片的方法
2015/04/07 PHP
AJAX架构之Dojo篇
2007/04/10 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
2014/09/10 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
2015/04/15 Javascript
详解JavaScript中基于原型prototype的继承特性
2016/05/05 Javascript
webpack独立打包和缓存处理详解
2017/04/03 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
微信小程序渲染性能调优小结
2019/07/30 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
使用Python操作Elasticsearch数据索引的教程
2015/04/08 Python
一文总结学习Python的14张思维导图
2017/10/17 Python
python matplotlib坐标轴设置的方法
2017/12/05 Python
Python生成器以及应用实例解析
2018/02/08 Python
Python中return self的用法详解
2018/07/27 Python
Django Celery异步任务队列的实现
2019/07/24 Python
Python猴子补丁知识点总结
2020/01/05 Python
python super函数使用方法详解
2020/02/14 Python
Python作用域与名字空间原理详解
2020/03/21 Python
Python中实现输入一个整数的案例
2020/05/03 Python
TUMI新加坡官网:国际领先的商旅箱包品牌
2019/01/12 全球购物
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
社会稳定风险评估方案
2014/06/02 职场文书
2014入党积极分子批评与自我批评思想报告
2014/10/06 职场文书
2019年教师节活动策划方案
2019/09/09 职场文书
500字作文之关于爸爸
2019/11/14 职场文书
详解Python为什么不用设计模式
2021/06/24 Python