el-table里面的el-image的lazy属性问题

当我们在el-table里面某一列显示图片的时候,可以用el-image。

当我们给table设置了height之后,表头就固定了。表里面的内容如果超过了height的值,就可以滚动显示出来。

但是这个时候,如果里面用到了el-image,会发现如果设置了lazy,也就是懒加载,图片是不会显示的。

查了很多现成的文档,也问了ChatGPT,都没有好的答复。不过还是找到了一些蛛丝马迹。

el-image会找到最近的一个overflow为auto或者scroll的父元素。如果它没找到,那肯定就加载不了了。

没有深究,暂时不知道为什么el-image没有正确的找到table里面那个滚动的父元素。那就只能手动设置一下了。

正好el-image有个属性是scroll-container,就是专门干这个用的,可以传string或者HTMLElement进去。如果传string,那这个string最终会传给document.querySelector去寻找对应的HTMLElement。

比如我这边,table是这样设置的:

<el-table
    id="listTable"
    stripe
    height="450"

那对应的el-image就可以这么写:

<el-image :src="scope.row.orgImg" lazy fit="fit" scroll-container="#listTable .el-table__body-wrapper"></el-image>

因为我的页面里面有多个table,为了方便查找,我就设置了一个id。

如果你不确定你的scroll-container的值应该写什么,就可以把里面的内容拿出来,用document.querySelector试一下,比如我的,就要试一下document.querySelector('#listTable .el-table__body-wrapper'),如果看到找到的div就是我们要的那个,就说明你找对了。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
el-table 树状结构的懒加载(lazy)是指在展开树节点时,只加载当前展开节点的子节点数据,而不加载整个树的数据。 要实现 el-table 树状结构的懒加载,你可以按照以下步骤进行操作: 1. 首先,在 el-table 的数据源中,为每个节点对象添加一个 `children` 属性,用于存储该节点的子节点数据。 2. 在 el-table 的列定义中,为展示树状结构的列添加一个自定义的模板。例如: ```html <el-table-column label="名称"> <template slot-scope="scope"> <span v-for="n in scope.row.level" :key="n">   </span> <span>{{ scope.row.name }}</span> </template> </el-table-column> ``` 3. 在 el-table 上添加 `:tree-props` 属性,用于指定树节点的配置。例如: ```html <el-table :data="data" :tree-props="{ hasChildren: 'hasChildren', children: 'children' }"> <!-- 列定义 --> </el-table> ``` 4. 在 el-table 上添加 `@node-expand` 事件监听器,用于在节点展开时请求该节点的子节点数据。例如: ```html <el-table :data="data" :tree-props="{ hasChildren: 'hasChildren', children: 'children' }" @node-expand="handleNodeExpand"> <!-- 列定义 --> </el-table> ``` 5. 在 Vue 组件的方法中,实现 `handleNodeExpand` 方法,用于请求节点的子节点数据并更新数据源。例如: ```javascript methods: { handleNodeExpand(row, done) { // 发起异步请求,并将子节点数据添加到当前节点的 children 属性中 // 更新数据源 this.$set(row, 'children', responseData); // 调用 done() 方法通知组件展开动作已完成 done(); } } ``` 通过以上步骤,你可以实现 el-table 树状结构的懒加载。当展开一个节点时,将触发 `node-expand` 事件,然后在该事件的处理方法中发起异步请求获取子节点数据,并更新当前节点的 `children` 属性,从而实现树状结构的懒加载效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值