详解使用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 相关文章推荐
FLASH 广告之外的链接
Dec 16 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
Mar 11 Javascript
基于jquery的不规则矩形的排列实现代码
Apr 16 Javascript
jquery如何改变html标签的样式(两种实现方法)
Jan 16 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
Apr 21 Javascript
js严格模式总结(分享)
Aug 22 Javascript
bootstrap table小案例
Oct 21 Javascript
canvas绘图不清晰的解决方案
Feb 28 Javascript
基于JavaScript实现滑动门效果
Mar 16 Javascript
Vue项目webpack打包部署到服务器的实例详解
Jul 17 Javascript
微信JSSDK实现打开摄像头拍照再将相片保存到服务器
Nov 15 Javascript
Node.js API详解之 querystring用法实例分析
Apr 29 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 session 预定义数组
2009/03/16 PHP
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
2011/02/23 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
jQuery中clone()方法用法实例
2015/01/16 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
javascript实现回到顶部特效
2015/05/06 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
2015/12/29 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
微信小程序 wx.uploadFile无法上传解决办法
2016/12/14 Javascript
JavaScript原生节点操作小结
2017/01/17 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
Angular2 组件交互实例详解
2017/08/24 Javascript
浅谈Vue SSR 的 Cookies 问题
2017/11/20 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
2018/04/09 Javascript
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
2020/08/13 Javascript
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
python查询文件夹下excel的sheet名代码实例
2019/04/02 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
win10安装python3.6的常见问题
2020/07/01 Python
python tkinter实现连连看游戏
2020/11/16 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
澳大利亚办公室装修:JasonL Office Furniture
2019/06/25 全球购物
mysql的最长数据库名,表名,字段名可以是多长
2014/04/21 面试题
总经理岗位职责范本
2014/02/02 职场文书
商务经理岗位职责
2014/07/30 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书
Nginx 根据URL带的参数转发的实现
2021/04/01 Servers