BootstrapVue 和 VueJS 中的布尔显示值

Posted

技术标签:

【中文标题】BootstrapVue 和 VueJS 中的布尔显示值【英文标题】:Boolean display value in BootstrapVue and VueJS 【发布时间】:2020-04-15 11:26:39 【问题描述】:

在我的项目中,我使用BootstrapVueVueJS。我目前正在做一个b-table,我在它的字段中有一个布尔字段。它正确显示truefalse,但我想显示其他内容(例如:Active 用于trueInactive 用于false)。我还没有找到任何关于如何做到这一点的东西(如果有内置的东西,我没有在文档中看到它)。 这是我当前对BootstrapVueb-table 的字段声明:

table_fields: [
   key: 'username', sortable: true ,
   key: 'firstName', sortable: true ,
   key: 'lastName', sortable: true ,
   key: 'isActive', sortable: true, label: 'Status',
   key: 'actions', label: 'Actions' 
]

我想更改其行为的字段是isActive

提前感谢您的提示! :)

【问题讨论】:

【参考方案1】:

我找到了一种方法,使用我能读到的HERE。确实可以定义custom slots

最后我的字段声明看起来像:

table_fields: [
   key: 'username', sortable: true ,
   key: 'firstName', sortable: true ,
   key: 'lastName', sortable: true ,
   key: 'isActive', sortable: true, label: 'Status' ,
   key: 'actions', label: 'Actions' 
]

自定义插槽的小 sn-p :

<template v-slot:cell(isActive)="row">
  <b-badge
    v-if="row.item.isActive"
    variant="success">
    Active
  </b-badge>
  <b-badge
    v-else
    variant="warning">
    Archived
  </b-badge>
</template>

还有我的整个b-table

<b-table
  hover
  :items="users"
  :fields="table_fields">
  <template v-slot:cell(isActive)="row">
    <b-badge
      v-if="row.item.isActive"
      variant="success">
      Active
    </b-badge>
    <b-badge
      v-else
      variant="warning">
      Archived
    </b-badge>
  </template>
  <template v-slot:cell(actions)="row">
    <span v-if="row.item.isActive">
      <b-button
        to="#"
        size="sm"
        variant="primary"
        class="mr-1"
        title="Edit">
        <font-awesome-icon :icon="['fas', 'pen']"/>
      </b-button>
      <b-button
        @click="archiveUser(row.item.id)"
        size="sm"
        class="mr-1"
        title="Archive">
        <font-awesome-icon :icon="['fas', 'archive']"/>
      </b-button>
    </span>
    <b-button
      v-else
      @click="unarchiveUser(row.item.id)"
      variant="success"
      size="sm"
      class="mr-1"
      title="Unarchive">
      <font-awesome-icon :icon="['fas', 'caret-square-up']"/>
    </b-button>
    <b-button
      @click="deleteUser(row.item.id)"
      size="sm"
      variant="danger"
      class="mr-1"
      title="Delete">
      <font-awesome-icon :icon="['fas', 'trash-alt']"/>
    </b-button>
  </template>
</b-table>

以及它的样子:

您可以看到在Status 列中显示的是b-badge,而不是truefalse

【讨论】:

以上是关于BootstrapVue 和 VueJS 中的布尔显示值的主要内容,如果未能解决你的问题,请参考以下文章

10+个很酷的VueJS组件,模板和实验示例

表单组中的 BootstrapVue 控制列数

通过模板重置vue js布尔值

使用 FormData Javascript 发送布尔值 - Vuejs + Laravel 应用程序

VueJS - 在表单文件上传中验证文件大小要求

如何将 BootstrapVue 中的道具传递给路由器链接