今天碰到了el-table 中 el-table-column 使用slot插槽 v-if导致不显示,经过研究是细节上的问题所导致。

问题重现:

如下图所示为问题代码:

<el-table-column label="操作" align="center">
    <template slot-scope="scope">
        <el-button v-if="!scope.row.status" type="text">
            回复
        </el-button>
        <el-button type="text">
            详情
        </el-button>
    </template>
</el-table-column>

scope.row.status 为当前行的 status 的值,这里有0,1两种情况。

运行后如下所示:

 

这里有一点需要注意,如果前边加入插值语法他还是会正常显示:

<el-table-column label="操作" align="center">
    <template slot-scope="scope">
        {{ scope.row.status }}
        <el-button v-if="!scope.row.status" type="text">
            回复
        </el-button>
        <el-button type="text">
            详情
        </el-button>
    </template>
</el-table-column>

 解决方法:

解决方法也很简单,用一个 <div> 盒子将两个按钮包起来就可以解决:

<el-table-column label="操作" align="center">
    <template slot-scope="scope">
        <div>
            <el-button v-if="!scope.row.status" type="text">
                回复
            </el-button>
            <el-button type="text">
                详情
            </el-button>
        </div>
    </template>
</el-table-column>

 所以还是细节决定成败呀!!!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐