Vue 和 Bootstrap Vue - 动态使用插槽

2024-01-03

我试图在 bootstrap-vue 表中创建一个插槽,以使用自定义组件呈现任何布尔值。

所以我有一个简单的表

<b-table :items="items" :fields="columns" >

</b-table>

现在,如果我想以特定方式渲染单个列,我必须使用插槽

<template v-slot:cell(active)="data" >
    <my-component :item="data.item" />
</template>

它有效,因为我知道active是一个布尔值。

我想概括这种行为,但我不能使用v-for在模板中并且不能使用v-slot:cell(active)如果不在模板上...想法是创建一个包含所有布尔字段的数组并对其进行迭代...但它不起作用..

像这样的东西

<template v-slot:cell(b)="data" v-for="b in booleanFields">
    <my-component :item="data.item[b]" />
</template>

因为Vue支持动态插槽名称 https://v2.vuejs.org/v2/guide/components-slots.html#Dynamic-Slot-Names,您可以使用变量来设置插槽名称v-bind:[attributeName]="value" https://v2.vuejs.org/v2/guide/syntax.html#Dynamic-Arguments句法。

这样你就可以做类似的事情:

<template v-slot:['cell(' + b + ')']="data" v-for="b in booleanFields">

但使用引号是不可能的,因为动态参数表达式约束 https://v2.vuejs.org/v2/guide/syntax.html#Dynamic-Argument-Expression-Constraints。因此,您必须创建一个辅助方法来执行该连接。所以:

<template v-slot:[gomycell(b)]="data" v-for="b in booleanFields">

plus

methods: {
  gomycell(key) {
    return `cell(${key})`; // simple string interpolation
  }

当然,您可以直接命名该方法gomycell as cell并像这样使用它v-slot:[cell(b)]="data"(注意[]s),但我留下了名字gomycell因此,在这个示例中,可以更清楚地看出方法的名称是什么,方法的名称不是。


Demo:

这是一个小演示,展示了动态插槽名称 https://v2.vuejs.org/v2/guide/components-slots.html#Dynamic-Slot-Names用法,不是b-table但我认为这足以表明这是可能的:

Vue.component('my-table', {
  template: '#my-table',
})

new Vue({
  el: '#app',
  data: {
    booleanFields: [true, false]
  },
  methods: {
    gomycell(key) {
      return `cell(${key})`;
    }
  }
})
<script src="https://unpkg.com/vue"></script>

<div id="app">
  <my-table>
    <template v-slot:[gomycell(b)]="data" v-for="b in booleanFields">
      <h3>who? {{ data.is }}</h3>
    </template>
  </my-table>
</div>

<template id="my-table">
  <div>
    <div style="color:green"><slot name="cell(true)" v-bind="{is: 'true!'}"></slot></div>
    <div style="color:red"><slot name="cell(false)" v-bind="{is: 'false!'}"></slot></div>
  </div>
</template>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue 和 Bootstrap Vue - 动态使用插槽 的相关文章

  • Vue.js - 当标头中使用 multipart/form-data 时,axios 中的文件上传验证失败

    我正在构建一个 Laravel Vue js SPA 单页应用程序 BootstrapVue https bootstrap vue js org Vee验证 https logaretm github io vee validate gu
  • 使用 jquery-chosen 插件更新 vuejs 模型值

    尝试使用jquery 选择 http harvesthq github io chosen 使用 vue 问题是这个插件隐藏了我应用的实际选择v model 所以当我选择一个值时 vue 不会将其识别为选择更改事件 并且模型值不会更新 当我
  • 为网格注入浏览器前缀不适用于 Vue

    我已经在这件事上浪费了一个下午的时间了 我被难住了 我发现IE11不支持grid template我需要使用 ms grid columns and ms grid rows相反 我正在尝试生成一些 CSS 并通过 Vue 方法注入它 这适
  • Vue 组件方法未在动态 HTML 中的事件上运行

    我正在尝试动态创建一些 HTML 内容并将 Vue 组件方法绑定到元素上的事件 然而这不起作用 下面是问题的描述和测试用例的片段 重现问题的步骤 Click 点我1 观察控制台 Click 切换工具提示的弹出框 Click 点我2 观察控制
  • Vuejs2 Modal 与 vue-router 中的路线

    我正在尝试使用模态创建一条路由 当您使用路由器链接访问此路由器路径时 会在当前页面上方显示一个模态 或者如果我直接从 url 访问 则会出现上面带有模态的索引 例如 我在http localhost 个人资料 1 http localhos
  • 每次页面重新启动时,Firebase.auth().currentUser 都会变为 null

    我正在使用 firebase 身份验证与 vue 应用程序 每次登录用户后重新启动页面时 currentUser 都会变为 null firebase auth signInWithEmailAndPassword this email t
  • Laravel Vue SPA 与 MPA/SSR

    许多 laravel vue 教程使用 ajax 调用来获取数据 看来 SPA 与 Laravel 是完全隔离的 IE Laravel 只是一个数据 API vue 应用程序也可以简单地托管在第三方外部服务器 例如 AWS S3 上 这是推
  • 是否可以限制用户登录 Firebase 应用的设备数量?

    语境 我正在帮助使用 Vue 更新 Cordova 应用程序 以从基于订阅的收入 用户必须付费才能访问该应用程序 转变为基于广告的收入 用户可以免费注册 但将拥有他们在使用应用程序时显示的广告 我们想要做的一部分是限制用户可以拥有帐户的设备
  • 如何为 VueJS 项目设置根/基 URL

    我已经部署了一个VueJS项目到像这样的域www example com 但是 我想将其移动到子文件夹 以便我可以像这样访问它www example com v1 如何设置基础 URL 或根 URLVueJS项目 注意 这与基本 URL 无
  • Vue js按钮冻结dom

    我试图在按下按钮时切换包含加载动画的跨度 直到使用 v if 函数完成 但是当我按下按钮时 DOM 冻结并且 span 元素保持不变 直到函数调用结束 如何让 DOM 不冻结并显示加载图标 非阻塞按钮按下可能是一个解决方案 HTML
  • 为什么在 vue 组件上输入另一个输入时,输入文件的值丢失了?

    我有两个组件 我的第一个组件 父组件 如下所示
  • 如何以编程方式添加 Vue 3 组件?

    Vue 3 没有 Vue extend 方法 因此这里的示例不起作用 https css tricks com creating vue js component instances programmatically https css t
  • 如何从 vue 组件调用 App.vue 中的方法

    我有一个 vue 组件和一个 vue 元素声明 如下所示 Vue component todo item template li This is a todo li methods test function I am getting an
  • firestore 安全规则 request.auth.uid 不起作用

    Firestore 安全规则不起作用 帮我 无法读取用户 用户 ID 的文档数据 安全规则 service cloud firestore match databases database documents match users use
  • Vuejs ssr 检查用户是否针对每个请求进行了身份验证

    我正在为我的应用程序使用这个 ssr 样板 https github com vuejs vue hackernews 2 0 https github com vuejs vue hackernews 2 0 我不知道如何实现逻辑来检查每
  • 如何在Vue3中对setup的内部函数(不是返回)进行单元测试?

    我想这样测试 情况1 错误 无法监视内部属性 因为它不是函数 改为未定义 组件 vue export default setup function outer inner function inner do something for on
  • node.js、vue.js 和express.js 堆栈开发

    我正在尝试使用 Linux 上的 Visual Studio Code IDE 使用 vue js express js 和 node js 创建一个 Web 应用程序 根据网上的一些文档 我读到安装 vue js 后 可以创建一个vue
  • 模拟安装挂钩 Jest 测试装置

    我正在对组件进行一些单元测试 但是 在某些组件中 我有一些东西在运行mounted使我的测试失败的钩子 我设法模拟了我不需要的方法 但是 我想知道是否有一种解决方法可以模拟mounted钩住自己 components attendeesLi
  • Asyncdata 与 Fetch 之间的区别

    获取数据和异步数据之间的确切区别是什么 官方文档是这么说的 异步数据 您可能想要获取数据并在服务器端呈现它 Nuxt js 添加 asyncData 方法 让您可以在之前处理异步操作 设置元件数据 异步数据每次在加载组件之前调用 仅适用于
  • 可以用vue-chartjs打印图表吗?

    我正在使用 vue chartjs 在网络应用程序上渲染图表 我知道如果您使用原始版本 您可以打印图表library https canvasjs com docs charts methods chart print 但是我不知道如何使用

随机推荐

  • 如何将用户从 ASP.MVC 3 操作过滤器重定向到另一个控制器操作?

    在构建自定义 ASP MVC 3 操作过滤器时 如果测试失败 我应该如何将用户重定向到另一个操作 我想传递原始操作 以便在用户输入缺少的首选项后我可以重定向回原始页面 在控制器中 FooRequired public ActionResul
  • 在 QML 中嵌入 Latex 的可能性

    我正在 QML 带有 C 后端 中做一个演示系统 类似于this one http blog qt digia com blog 2011 05 30 a qml presentation system 我希望能够包含一些 Latex 代码
  • 加载固定装置时 django unittest 出错

    我正在为 django 应用程序进行单元测试 我需要数据库中的一些数据进行测试 因此我使用 json 夹具 我有两个固定装置 对于用户来说 它工作正常 对于某些网页 夹具2导致以下错误 Problem installing fixture
  • C++11 带有函数默认参数值的可变参数

    我有调用模板函数 N 次的包装器 template
  • Hadoop 配置:mapred.* 与 mapreduce.*

    我注意到有两组 Hadoop 配置参数 一组使用 mapred 另一组使用 mapreduce 我猜测这些可能是由于旧 API 与新 API 造成的 但如果我没有记错的话 这些似乎在新 API 中共存 我对么 如果是这样 是否有一个通用的声
  • Pandas 读取没有标题的表

    使用 pandas 如何仅读取没有标题的 csv 文件的部分列 例如第四列和第七列 我似乎无法使用usecols 为了读取没有标题且仅针对某些列的 csv 您需要传递参数header None and usecols 3 6 对于第 4 列
  • 重命名文件夹中的所有文件

    我想知道是否可以使用 vb NET 通过一个简单的程序重命名文件夹中的所有文件 我很绿 不确定这是否可能 假设有一个包含文件的文件夹 Text Space aliens txt fishing and hunting racoons txt
  • 在Android中使用geo的默认谷歌地图具有多个经纬度

    我使用以下代码在默认谷歌地图上显示位置geo Uri uri Uri parse geo Global detail lat Global detail long q Global detail lat Global detail long
  • 更改 rich:dataTable 中行的背景颜色

    我在 rich datatable 中有一行 其中的一列中有一个链接 单击此单击时 我需要更改所选行的背景颜色 我怎样才能做到这一点 您可以使用以下代码来执行此操作
  • Python3 - 如何从现有抽象类定义抽象子类?

    我最初定义了以下抽象类 from abc import ABC abstractmethod class Primitive ABC 现在我想创建另一个继承自 Primitive 的抽象类 class InstrumentName Prim
  • Verilog 最佳实践 - 递增变量

    我绝不是 Verilog 专家 我想知道是否有人知道这些增加值的方法中哪一种更好 抱歉 如果这个问题太简单了 Way A 在组合逻辑块中 可能在状态机中 some condition count next count 1 然后在一个连续块中
  • 禁用 Apache Felix 中的缓存

    我正在尝试按照该线程中的说明进行操作 http osdir com ml dev felix apache 2009 05 msg00051 html http osdir com ml dev felix apache 2009 05 m
  • 在 PhoneGap IOS 上缓存图像的最佳方法

    我正在构建一个 PhoneGap ios 应用程序 用于使用 JSON 从服务器导入数据 该数据包含图像 URL 我已经用于将数据缓存在本地存储中 以便在应用程序没有互联网连接时使用它 但我有一个问题是缓存图像的最佳方式是什么 我正在考虑将
  • 在 RStudio 中安装包时出错:从连接读取时出错

    我最近更新了 R 版本 3 4 1 和 RStudio 版本 1 0 143 现在无法从 Rstudio 安装软件包 如果我直接使用 R 安装包install packages 效果很好 如果我尝试使用以下任一方法在 Rstudio 中安装
  • 构造函数调用自身

    我最近发现无参数构造函数和多参数构造函数不能轮流调用对方 这种限制的根本原因是什么 有人可能会说构造函数是初始化资源的地方 因此不能递归调用它们 我想知道这是否是唯一的原因 函数 方法 过程可以递归调用 为什么不是构造函数 答案在于 对另一
  • 获取焦点(或 Tab)顺序

    我使用 Qt Designer 设计了一个用户界面 并使用 编辑选项卡顺序 模式设置了选项卡顺序 现在我想知道 出于其他原因 不是那么重要 是如何获取 ui 中特定 QWidget 的 Tab 键顺序 我的意思是 如果我有几个小部件 并且说
  • 工作流程语言? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找当前工作流程语言的列表 我知道关于BPEL http en wikipedia org wiki Business Proces
  • 查询特定 Twitter 用户的 tweepy (get_followers) 中的分页

    我对使用游标类的 tweepy 和分页相当陌生 我一直在尝试使用光标类来获取特定 Twitter 用户的所有关注者 但我不断收到错误消息 tweepy error TweepError This method does not perfor
  • Apache Tomcat 9 重写阀不工作

    我一直在尝试设置我的 tomcat 9 重写阀门 在全局级别 但没有成功 遵循我在互联网上找到的每个教程 但无论我如何配置我的 rewirte config 阀门根本无法工作 所以我写了我能想到的最简单的 rewrite config 它只
  • Vue 和 Bootstrap Vue - 动态使用插槽

    我试图在 bootstrap vue 表中创建一个插槽 以使用自定义组件呈现任何布尔值 所以我有一个简单的表