Element el-table二次封装formatter和template不能同时存在问题解决办法
时间: 2024-01-17 09:06:10 浏览: 142
如果你在对`<el-table>`进行二次封装时,想要同时支持`formatter`和`scope`属性,可以在封装组件中使用`v-if`指令来判断是否存在`formatter`属性,如果存在,则使用`formatter`属性进行格式化,否则使用`<template>`标签和`scope`属性来获取当前行的数据对象进行格式化。
例如,假设你封装了一个名为`MyTable`的组件,你可以使用如下的代码来实现同时支持`formatter`和`scope`属性:
```html
<template>
<el-table :data="tableData">
<el-table-column
:prop="prop"
:label="label"
:formatter="formatter"
>
<template v-if="!formatter" slot-scope="scope">
<!-- 根据需要进行格式化 -->
</template>
</el-table-column>
</el-table>
</template>
```
在上面的代码中,我们使用了`v-if`指令来判断是否存在`formatter`属性,如果存在,则使用`formatter`属性进行格式化,否则使用`<template>`标签和`scope`属性来获取当前行的数据对象进行格式化。
需要注意的是,如果你使用了`v-if`指令来判断是否存在`formatter`属性,那么你需要在父组件中动态传递`formatter`属性,而不能在封装组件中直接写死。
阅读全文