详解使用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基本对象
Jan 11 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
Apr 08 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
Oct 14 Javascript
jQuery javaScript捕获回车事件(示例代码)
Nov 07 Javascript
jquery form表单序列化为对象的示例代码
Mar 05 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
Feb 16 Javascript
jQuery超酷平面式时钟效果代码分享
Mar 30 Javascript
BootStrap和jQuery相结合实现可编辑表格
Apr 21 Javascript
原生js实现吸顶效果
Mar 13 Javascript
jQuery选择器之子元素过滤选择器
Sep 28 jQuery
vue项目webpack中Npm传递参数配置不同域名接口
Jun 15 Javascript
详解CocosCreator消息分发机制
Apr 16 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
Apache服务器无法使用的解决方法
2013/05/08 PHP
合格的PHP程序员必备技能
2015/11/13 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
2016/07/01 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
PHP实现基于状态的责任链审批模式详解
2019/05/31 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
多浏览器兼容的获取元素和鼠标的位置的js代码
2009/12/15 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
EasyUI中combobox默认值注意事项
2015/03/01 Javascript
jQuery中toggle()函数的使用实例
2015/04/17 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
javascript 开发之百度地图使用到的js函数整理
2017/05/19 Javascript
详解Angular.js中$http拦截器的介绍及使用
2017/07/04 Javascript
详解vue中使用express+fetch获取本地json文件
2017/10/10 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
2017/11/20 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
Python利用ansible分发处理任务
2015/08/04 Python
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
python基于pyDes库实现des加密的方法
2017/04/29 Python
python 表格打印代码实例解析
2019/10/12 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
中国制造网:Made-in-China.com
2019/10/25 全球购物
服装销售人员求职自我评价
2013/09/26 职场文书
竞选班委演讲稿
2014/04/28 职场文书
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
机关工会工作总结2015
2015/05/26 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
2019下半年英语教师的教学工作计划(3篇)
2019/09/25 职场文书
导游词之山东红叶谷
2019/10/31 职场文书