#javascript #vue.js #bootstrap-vue
Вопрос:
Я новичок в vue, и некоторые вещи для меня совершенно новые. Я уже пытался найти решение в Google, но до сих пор ничего не нашел.
Я надеюсь, что кто-нибудь сможет мне помочь или сказать, возможно ли то, что я пытаюсь, или нет.
У меня есть один тег b-формы, получающий данные из коллекции firestore.
В этом конкретном теге b-формы мне нужны только теги «удалить/удалить».
Я не хочу разрешать новые теги:
Скрипка b-форма-тег не позволяет создавать новые
new Vue({
el: '#app',
data: {
tagsCotasJaPagas : ['2016', '2017'],
cotaJaPagasDisable : true,
tagsCotasAbertas : ['2018', '2019', '2020']
},
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.15/vue.js"></script>
<div id="app">
<b-form-tags
input-id="tags-basic"
v-model="tagsCotasJaPagas"
:disabled="cotaJaPagasDisable"
placeholder=""
@input="changeTagTest()"
inputType="number"
no-add-on-enter
disableAddButton
>
</b-form-tags>
<b-form-checkbox switch size="lg" v-model="cotaJaPagasDisable">
<span v-if="cotaJaPagasDisable">Unlock</span>
<span v-else>Lock</span>
</b-form-checkbox>
</div>
Ответ №1:
Вы можете добавить input-id="tags-limit"
b-form-tags
, а затем установить limit
:
<b-form-tags
input-id="tags-limit"
v-model="tagsCotasJaPagas"
:disabled="cotaJaPagasDisable"
placeholder=""
@input="changeTagTest()"
inputType="number"
:limit="limit"
limit-tags-text="Limit reached"
remove-on-delete
>
Vue.config.productionTip = false
Vue.config.devtools = false
new Vue({
el: '#app',
data: {
tagsCotasJaPagas : ['2016', '2017'],
cotaJaPagasDisable : true,
limit: 2,
tagsCotasAbertas : ['2018', '2019', '2020']
},
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-vue/2.21.2/bootstrap-vue.min.css" integrity="sha512-YnP4Ql71idaMB /ZG38 1adSSQotdqvixQ dQg8x/IFA4heIj6i0BC31W5T5QUdK1Uuwa01YdqdcT42q RldAg==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-vue/2.21.2/bootstrap-vue.min.js" integrity="sha512-Z0dNfC81uEXC2iTTXtE0rM18I3ATkwn1m8Lxe0onw/uPEEkCmVZd H8GTeYGkAZv50yvoSR5N3hoy/Do2hNSkw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<div id="app">
<b-form-tags
input-id="tags-limit"
v-model="tagsCotasJaPagas"
:disabled="cotaJaPagasDisable"
placeholder=""
@input="changeTagTest()"
inputType="number"
:limit="limit"
limit-tags-text="Limit reached"
remove-on-delete
>
</b-form-tags>
<b-form-checkbox switch size="lg" v-model="cotaJaPagasDisable">
<span v-if="cotaJaPagasDisable">Unlock</span>
<span v-else>Lock</span>
</b-form-checkbox>
</div>
Комментарии:
1. Привет, спасибо за предложение. Я начал использовать «ограничение» как валидатор. В основном при удалении одного тега я обновляю ограничение на длину массива.
2. Добро пожаловать, ура 🙂