详解使用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 相关文章推荐
详解new function(){}和function(){}() 区别分析
Mar 22 Javascript
JS 无法通过W3C验证的处理方法
Mar 09 Javascript
基于jQuery的为attr添加id title等效果的实现代码
Apr 20 Javascript
js通过地址栏给action传值(中文乱码全是问号)
May 02 Javascript
详细解读JavaScript编程中的Promise使用
Jul 27 Javascript
jQuery使用经验小技巧(推荐)
May 31 Javascript
vue-router单页面路由
Jun 17 Javascript
Vue中用props给data赋初始值遇到的问题解决
Nov 27 Javascript
JavaScript中的&quot;=、==、===&quot;区别讲解
Jan 22 Javascript
vue监听dom大小改变案例
Jul 29 Javascript
Vue $attrs &amp; inheritAttr实现button禁用效果案例
Dec 07 Vue.js
详解JavaScript中Arguments对象用途
Aug 30 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
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
2015/04/03 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
PHP使用file_get_contents发送http请求功能简单示例
2018/04/29 PHP
js tab效果的实现代码
2009/12/26 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
JS长整型精度问题实例分析
2015/01/13 Javascript
jquery实现右键菜单插件
2015/03/29 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
AngularJS中的Directive自定义一个表格
2016/01/25 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
Javascript中prototype与__proto__的关系详解
2018/03/11 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
Python的迭代器和生成器使用实例
2015/01/14 Python
Python中使用Tkinter模块创建GUI程序实例
2015/01/14 Python
20招让你的Python飞起来!
2016/09/27 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
尼克松手表官网:Nixon手表
2019/03/17 全球购物
英国最受欢迎的母婴精品品牌:JoJo Maman BéBé
2021/02/17 全球购物
经济管理专业求职信
2014/06/09 职场文书
军训拉歌口号
2014/06/13 职场文书
2014年优秀党员材料
2014/12/18 职场文书
Spring Cloud Gateway去掉url前缀
2021/07/15 Java/Android