标签: bootstrap-vue

在 vue 3 中导入 bootstrapVue

您好,我尝试在我的 vue 3 应用程序中使用 bootstrapVue 和 typescript,这里是我的 main.ts:

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import Vue from 'vue'

import { BootstrapVue } from 'bootstrap-vue'

createApp(App).use(router).use(BootstrapVue).mount('#app')
Run Code Online (Sandbox Code Playgroud)

导致此错误:

src/main.ts:9:32
TS2345: Argument of type 'BootstrapVuePlugin' is not assignable to parameter of type 'Plugin_2'.
  Type 'BootstrapVuePlugin' is not assignable to type '{ install: PluginInstallFunction; }'.
    Types of property 'install' are incompatible.
      Type 'PluginFunction<BvConfigOptions>' is not assignable to type 'PluginInstallFunction'.
        Types of parameters 'Vue' and 'app' are …
Run Code Online (Sandbox Code Playgroud)

javascript import typescript vue.js bootstrap-vue

9
推荐指数
1
解决办法
1万
查看次数

如何使用laravel-mix将bootstrap-vue加载到Laravel 5中?

我正在尝试将Bootstrap Vue加载到Laravel 5.6项目中

官方的文档说,修改webpack.config.js文件,如:

+   module: {
+     rules: [
+       {
+         test: /\.css$/,
+         use: [
+           'style-loader',
+           'css-loader'
+         ]
+       }
+     ]
+   }
Run Code Online (Sandbox Code Playgroud)

Webpack文档:https://webpack.js.org/guides/asset-management/#loading-css

我没有webpack.config.js文件所以我尝试使用Laravel mix加载CSS

mix.js('resources/assets/js/app.js', 'public/js')
   .sass('resources/assets/sass/app.scss', 'public/css')
    .styles('node_modules/bootstrap-vue/dist/bootstrap-vue.css', 'public/css');
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误

mix.combine()需要一个完整的输出文件路径作为第二个参数.

而且我不相信这是正确的做法.

将bootstrap-vue添加到新的Laravel 5.6项目中的正确方法是什么?

laravel webpack vue.js laravel-mix bootstrap-vue

8
推荐指数
1
解决办法
6088
查看次数

Bootstrap-vue b-table:如何为非活动行设置 css-Class?

我正在使用 vue2 和 bootstrap-vue。实际上我有一个带有一些字段的b 表。其中一个字段是带有布尔值(真/假)的“已发布”。我想在每一行都有一个css 类,其中字段 'released' 的值为 false。例如,用另一种文本颜色显示该行处于非活动状态。

我怎样才能做到这一点?我在 bootstrap-vue 的文档中没有找到解决方案。有人有想法吗?(这是我在这里的第一个问题,如果可能难以理解,请见谅)

示例(只有第 2 项的行应该在表格行上获得一个 css-class,因为它没有被释放):

...
<b-table stacked="md" :items="items" :fields="fields" >
...


<script>
...

export default {
  data () {
    return {
        fields: {
            {
              key: 'id',
              label: 'ID',
              sortable: true,
              class: 'Left',
            },
            {
              key: 'name',
              label: 'Name',
              sortable: true,
              class: 'Left'
            },
            {
              key: 'released',
              label: 'Freigegeben',
              sortable: true,
              class: 'Left'
            },
        },
        items: [
            {
              id: '1',
              name: 'nameA',
              released: …
Run Code Online (Sandbox Code Playgroud)

vuejs2 bootstrap-vue

8
推荐指数
2
解决办法
6602
查看次数

Bootstrap Vue表:单击行时显示详细信息

试图获得与文档体验不同的内容:不是通过单击按钮而是在单击行时显示行详细信息。而且文档缺乏有关如何像示例中那样使它与众不同的细节。

<b-table
    v-if="tableIsReady"
    :items="deals"
    :fields="fields" 
    :per-page="recordsPerPage"
    no-local-sorting 
    @sort-changed="sorting" 
    responsive 
    flex 
    striped 
    hover
    @row-clicked="expandAdditionalInfo" 
  > 
   <template slot="row-details" slot-scope="row">
    <b-card>
      <h1>hello</h1>
    </b-card>
  </template>
 </b-table>
Run Code Online (Sandbox Code Playgroud)

这是我的功能,但我认为它根本不起作用

expandAdditionalInfo(row) {
  row.showDetails();
}
Run Code Online (Sandbox Code Playgroud)

javascript vue.js bootstrap-vue

8
推荐指数
2
解决办法
7353
查看次数

使用 bootstrap-vue 导航栏 item-dropdown 更改文本颜色

我正在Bootstrap-Vue编写一个网页,但我无法更改 上的文本颜色Bootstrap navbar,尤其是b-nav-item-dropdown标签。我曾尝试使用<span class="text-dark"环绕b-nav-item-dropdown标签,但没有奏效。看来, 的变体b-navbar只能将文本颜色变体设置为深色或浅色。

这是我的代码:

<div>
  <b-navbar toggleable="md" type="dark" variant="primary">
  <b-navbar-toggle target="nav_collapse"></b-navbar-toggle>
  <b-collapse is-nav id="nav_collapse">
    <b-navbar-nav class="pl-5" inline>

      <b-nav-item-dropdown text="Electronics">
        <b-dropdown-item href="/">Item 1</b-dropdown-item>
        <b-dropdown-item href="/">Item 2</b-dropdown-item>
        <b-dropdown-item href="/">Item 3</b-dropdown-item>
        <b-dropdown-item href="/">Item 4</b-dropdown-item>
      </b-nav-item-dropdown>


      <b-nav-item-dropdown text="Sports">
        <b-dropdown-item href="/">Item 1</b-dropdown-item>
        <b-dropdown-item href="/">Item 2</b-dropdown-item>
        <b-dropdown-item href="/">Item 3</b-dropdown-item>
        <b-dropdown-item href="/">Item 4</b-dropdown-item>
      </b-nav-item-dropdown>

    </b-navbar-nav>
    <!--Login button-->
    <b-navbar-nav class="ml-auto pr-5">
      <b-button size="me">Login</b-button>
    </b-navbar-nav>

  </b-collapse>
</b-navbar>
</div>
Run Code Online (Sandbox Code Playgroud)

我的目标是让所有文本b-nav-item-dropdown都变成黑色而不是灰白色。

javascript css vue.js vuejs2 bootstrap-vue

8
推荐指数
2
解决办法
1万
查看次数

使用npm包管理器安装时,b-tooltip css无法正常工作

我目前正致力于制作一个类似于Github的贡献图的组件,并努力将其作为npm包分享.

vue-contribution-graph使用npm打包的组件不会正确显示工具提示.b-tooltip组件的CSS 正在处理原始项目,但似乎没有在打包的组件中正确包含.实际上,在运行之后npm i vue-contribution-graph,工具提示背景不会出现.

我创建了一个GitHub问题只是为了让它更清晰:https://github.com/estelled/vue-contribution-graph/issues/4

手动安装所有依赖项后,行为保持不变.

我按照本教程进行了npm打包.

文件已更改为打包组件:

  1. package.json
  2. 添加了一个vue.config.js文件,在包中包含CSS

我如何解决它?

npm vue.js bootstrap-vue

8
推荐指数
1
解决办法
99
查看次数

如何从 Vue Composition API / Vue 3.0 + TypeScript 中的组合函数访问根上下文?

我想创建一个TypeScript编写的可重用包装器函数,用于通过使用组合函数触发 Toast 通知,如 Vue 3.0 的当前规范:组合 API RFC 中所定义

此示例使用 BootstrapVue v2.0 toast 组件。使用 Vue 2,它将通过根上下文中this.$bvToastVue 组件实例注入来调用:

this.$bvToast.toast('Error happened', {
  title: 'Oh no',
  variant: 'danger'
});
Run Code Online (Sandbox Code Playgroud)

这个类似服务的组合函数看起来很像这样:

// File: @/util/notify.ts
export function useNotify() {
  const notifyError = (title: string, msg: string) => {
    // How to access context.root as in a function component, without passing it to this function?
    context.root.$bvToast.toast(msg, {
      title,
      variant: 'danger'
    });
  }; …
Run Code Online (Sandbox Code Playgroud)

typescript vue.js bootstrap-vue vuejs3 vue-composition-api

8
推荐指数
2
解决办法
5318
查看次数

用Bootstrap-Vue玩笑

我最近一直在使用vuejs和bootstrap-vue。决定将单元测试添加到我的项目中。

我对单元测试不是很熟悉,因此我正在尝试尝试发现的一切以了解其工作原理。

Login.specs.js

import { shallowMount, mount } from '@vue/test-utils'
import Login from '@/components/auth/Login.vue'

describe('Login.vue', () => {
  it('is a Vue instance', () => {
   const wrapper = mount(Login, {
    mocks: {
     $t: () => 'Connexion' // i18N
    }
   })
  const h2 = wrapper.find('h2')
  expect(h2.text()).toBe('Connexion')
 })
})
Run Code Online (Sandbox Code Playgroud)

Login.vue

<b-row align-h="center">
 <b-col class="text-center">
  <h2>{{ $t('login.connection') }}</h2>
 </b-col>
</b-row>
Run Code Online (Sandbox Code Playgroud)

测试似乎一切正常。但是我发现了这些缺陷,并且可以找到一种方法来进行实际修复。

[Vue警告]:未知的自定义元素:-您是否正确注册了组件?对于递归组件,请确保提供“名称”选项。

[Vue警告]:未知的自定义元素:-您是否正确注册了组件?对于递归组件,请确保提供“名称”选项。

因此,我环顾四周,似乎需要将这些子组件添加到父亲中。

这是这些组件的文档

我还添加了我的配置文件(与vue-cli 3生成的文件相同)

jest.congif.js

module.exports = {
  moduleFileExtensions: [
  'js',
  'jsx',
  'json',
  'vue'
 ],
 transform: …
Run Code Online (Sandbox Code Playgroud)

javascript jestjs vuejs2 vue-cli bootstrap-vue

7
推荐指数
3
解决办法
2231
查看次数

使 bootstrap-vue b-table 'Id' 列不可见

我在数据中有一个 bootstrap-vue 表(b-table),我想让它的 'Id' 值可以在以后的事件中访问,但我想从表渲染中隐藏它。

我以为我看到了一种通过将“Id”绑定到 row.key 或 row.index 或一些此类 b 表属性来实现此目的的方法,但我在任何地方都找不到。

所以我在字段定义中包含了列值,但我无法找到隐藏列的方法。

该表如下所示:

                <b-table show-empty responsive striped hover small outlined :stacked="stack"
                     :items="DisplayViewData"
                     :fields="fields"
                     :sort-by.sync="sortBy"
                     :sort-desc.sync="sortDesc">
                <template slot="select" slot-scope="data">
                    <b-form-checkbox v-model="data.item.IsSelected"/>
                </template>
            </b-table>
Run Code Online (Sandbox Code Playgroud)

字段定义如下:

       fields: Array<any> = [
        {key: 'Id',},
        {key: 'LastName', sortable: true},
        {key: 'FirstName', sortable: true},
        etc.....
    ];
Run Code Online (Sandbox Code Playgroud)

但这意味着呈现了 Id 列。

有没有办法通过使“Id”列不可见或将 data.Id 值分配给其他一些 b 表行数据上下文来执行我想要的操作?

twitter-bootstrap bootstrap-4 vuejs2 bootstrap-vue

7
推荐指数
3
解决办法
1万
查看次数

如何等到模态关闭并根据单击确定或取消继续执行?

算法:

  1. 我发现了两个对象数组之间的区别(什么是新的,什么是删除的,什么是重命名的,等等)。差异存储在data[1-5]
  2. 基于#1,我为模态准备了一个文本摘要(文本对象),以通知用户发现了什么差异。此摘要存储在someDataToShowInModal.
  3. 当发现差异时,必须向用户显示带有摘要的模式。用户应接受(单击确定)或拒绝(单击取消)以应用更改。
  4. 问题:如何等到用户点击模态的 OK 或 CANCEL 按钮?

    在代码中我展示了两种可能的解决方案,但不知道如何实现它们:

    1. 将模态包装到 Promise 中。

    2. 使用state.doSave并以某种方式等到它被更改myModalComponent

  5. 如果用户单击“确定”,则应用更改。

下面是伪代码,显示了我尝试实现的逻辑:

状态.js

modalTextSummary = {}
Run Code Online (Sandbox Code Playgroud)

动作.js

async myAction ({ state }) {
  let modalClosed
  let someDataToShowInModal = {}

  let data1 = []
  let data2 = []
  let data3 = []
  let data4 = []
  let data5 = []

  // #1. Push difference to "data[1-5]"
  data1.push(xyz1)
  data2.push(xyz2)
  data3.push(xyz3)
  data4.push(xyz4)
  data5.push(xyz5)

  // #2. Based on data[1-5] prepare "someDataToShowInModal"
  someDataToShowInModal …
Run Code Online (Sandbox Code Playgroud)

javascript bootstrap-4 vuex vuejs2 bootstrap-vue

7
推荐指数
1
解决办法
4323
查看次数