Причина, по которой это не работает, заключается в том, что данные экранированы, то есть HTML-код в данных не имеет никакого эффекта, и компонент font-awesome-icon никогда не будет отображаться. Вы могли бы использовать v-html, но это не очень безопасно, и я не думаю, что компоненты визуализируются в v-html (я никогда не пробовал)? Вероятно, лучшим решением для этого является использование слотов с ограниченным пространством.
Нажмите здесь для примера кода ручки
Документы: https://bootstrap -vue.js.org / документы / компоненты / таблица / # пользовательские рендеринг данных .
<b-table :fields="fields" :items="items">
<template slot="isMember" slot-scope="{ item: { isMember }}">
<i :class="'fas ' + isMember"></i>
<!-- You can also use the font-awesome-icon component here -->
</template>
</b-table>
Единственное, что вам нужно сделать, кроме этого, это получить данные следующим образом:
fields: [
'isActive',
'registerCounter',
// This one needs a custom template, so we define the key and the label
{ key: 'isMember', label: 'Is Member' }
],
items: [
{ isActive: true, isMember: 'fa-user-secret', registerCounter: 4 },
{ isActive: true, isMember: 'fa-user-secret', registerCounter: 4 },
]
Надеюсь, это поможет.