详解使用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 相关文章推荐
JScript中的&quot;this&quot;关键字使用方式补充材料
Mar 08 Javascript
Jquery插件 easyUI属性汇总
Jan 19 Javascript
jQuery拖动布局其结果保存到数据库
Oct 09 Javascript
jquery div模态窗口的简单实例
May 28 Javascript
简单实现jquery焦点图
Dec 12 Javascript
浅谈vue中数据双向绑定的实现原理
Sep 14 Javascript
详细介绍RxJS在Angular中的应用
Sep 23 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
Feb 05 Javascript
js实现左右两侧浮动广告
Jul 09 Javascript
微信小程序合法域名配置方法
May 06 Javascript
ES6新增的数组知识实例小结
May 23 Javascript
JavaScript原型链详解
Nov 07 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处理二进制数据的实现方法
2016/06/13 PHP
PHP APP微信提现接口代码
2018/09/30 PHP
php实现每日签到功能
2018/11/29 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
Javascript 错误处理的几种方法
2009/06/13 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
jQuery控制iFrame(实例代码)
2013/11/19 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
使用Chart.js图表库制作漂亮的响应式表单
2015/10/28 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
如何正确理解javascript的模块化
2017/03/02 Javascript
详解VueJs异步动态加载块
2017/03/09 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
vue计算属性和监听器实例解析
2018/05/10 Javascript
vue2 设置router-view默认路径的实例
2018/09/20 Javascript
python集合类型用法分析
2015/04/08 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
如何在python中使用selenium的示例
2017/12/26 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
2018/01/09 Python
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
python使用itchat实现手机控制电脑
2018/02/22 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
Python 实现两个列表里元素对应相乘的方法
2018/11/14 Python
Python如何进行时间处理
2020/08/06 Python
详解python datetime模块
2020/08/17 Python
火山咖啡:Volcanica Coffee
2019/10/29 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
2014教师教育实践活动对照检查材料思想汇报
2014/09/21 职场文书
办理收楼委托书范本
2014/10/09 职场文书
详解nodejs内置模块
2021/05/06 NodeJs
MySQL 用 limit 为什么会影响性能
2021/09/15 MySQL