详解使用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中Math()函数注意事项
Jun 18 Javascript
关于JavaScript的变量的数据类型的判断方法
Aug 14 Javascript
javascript获取wx.config内部字段解决微信分享
Mar 09 Javascript
JavaScript类型系统之布尔Boolean类型详解
Jun 26 Javascript
js实现动态创建的元素绑定事件
Jul 19 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
Sep 23 Javascript
BootStrap表单宽度设置方法
Mar 10 Javascript
vue-router实现webApp切换页面动画效果代码
May 25 Javascript
微信小程序模板和模块化用法实例分析
Nov 28 Javascript
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
Nov 05 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
Oct 28 Javascript
教你一步步实现一个简易promise
Nov 02 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操作XML作为数据库的类
2010/12/19 PHP
PHP微框架Dispatch简介
2014/06/12 PHP
php中动态调用函数的方法
2015/03/16 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
JS的document.all函数使用示例
2013/12/30 Javascript
js解决select下拉选不中问题
2014/10/14 Javascript
javascript面向对象程序设计(一)
2015/01/29 Javascript
用JavaScript实现页面重定向功能的教程
2015/06/04 Javascript
详解 javascript中offsetleft属性的用法
2015/11/11 Javascript
原生javascript 学习之js变量全面了解
2016/07/14 Javascript
AngularJS表格添加序号的方法
2017/03/03 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
2017/08/17 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
vue项目打包后怎样优雅的解决跨域
2019/05/26 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
[03:56]显微镜下的DOTA2第十一期——鬼畜的死亡先知播音员
2014/06/23 DOTA
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
Python实现的简单dns查询功能示例
2017/05/24 Python
Python编程实现及时获取新邮件的方法示例
2017/08/10 Python
Python使用回溯法子集树模板解决迷宫问题示例
2017/09/01 Python
python网络爬虫学习笔记(1)
2018/04/09 Python
Python函数的默认参数设计示例详解
2019/12/01 Python
关于Tensorflow使用CPU报错的解决方式
2020/02/05 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
Html5 web本地存储实例详解
2016/07/28 HTML / CSS
募捐倡议书怎么写
2014/05/14 职场文书
广告学专业毕业生自荐信
2014/05/28 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
单位委托书
2014/10/15 职场文书
成本会计岗位职责
2015/02/03 职场文书
护士实习自荐信
2015/03/06 职场文书
PHP策略模式写法
2021/04/01 PHP
浅析Python OpenCV三种滤镜效果
2022/04/11 Python