typescript - 获取 BootstrapVue 下拉列表(b-dropdown)以在单击按钮时显示

标签 typescript vue.js vuejs2 bootstrap-vue

使用 Vue.js 2.6.10 和 BootstrapVue 2.0.0-rc.20 并尝试在单击单个文件组件中的单独按钮时以编程方式显示下拉菜单。

<template lang='pug'>
div
  b-button(@click='loginShow') Test
  b-dropdown(id='login-dropdown', ref='dropdown', text='Login')
    b-dropdown-item(to='/login') Login
    b-dropdown-item(to='/signup') Sign up
</template>

<script lang="ts">
import { Component, Vue, Prop } from 'vue-property-decorator';
import { BDropdown } from 'bootstrap-vue';

@Component
export default class Login extends Vue {

  private loginShow(e: any): void {
    const dropdown = this.$refs.dropdown as BDropdown;
    dropdown.visible = true;
  }
}
</script>

知道发生了什么吗?

最佳答案

奇怪的是,使用 TypeScript 直接设置 visible 属性不起作用,尽管根据 @Riddhi 的代码笔使用 ES6 可以正常工作。

我的解决方案是将 bootstrap-vue 更新为 2.0.0-rc.21 并使用 show() 方法:

<template lang='pug'>
div
  b-button(@click='loginShow') Test
  b-dropdown(id='login-dropdown', ref='dropdown', text='Login')
    b-dropdown-item(to='/login') Login
    b-dropdown-item(to='/signup') Sign up
</template>

<script lang="ts">
import { Component, Vue, Prop } from 'vue-property-decorator';
import { BDropdown } from 'bootstrap-vue';

@Component
export default class Login extends Vue {

  private loginShow(e: any): void {
    const dropdown = this.$refs.dropdown as BDropdown;
    dropdown.show();
  }
}
</script>

关于typescript - 获取 BootstrapVue 下拉列表(b-dropdown)以在单击按钮时显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56274656/

相关文章:

javascript - AngularJS 组件 - 带有 Typescript 的 ngModelController

javascript - 如何在 vue js html 中添加多个图像以及其他输入字段?

javascript - 如何使用 vue js 为字体系列制作下拉菜单?

javascript - VueJs - 循环中的动态类

laravel - 在数据中设置初始值时未读取 VueJs Props

Typescript - 扩展外部 Javascript 库

javascript - 在类型定义中使用另一种类型的属性?

javascript - 使用多个 Math.pow 将 Excel 公式转换为 Javascript

vue.js - 在 Vue 模板中使用 'this'?

javascript - vue.js - 如何绑定(bind)只读输入字段? v-绑定(bind) :value or v-model?