Я новичок в Vue.js
, и я хотел бы установить некоторые данные, используя двустороннюю привязку данных через v-model
(на двух отдельных входах)
Зачем мне это нужно: у меня есть два ввода (input[type=number]
и select
, содержащие «дни», «месяцы», «годы»). И очевидно, что эти два входа будут объединены с данными.
Другое ограничение заключается в том, что пользователь может добавлять столько «периодов», сколько ему нужно, поэтому данные представляют собой строку в массиве. Используя v-for="(period, index) in periods"
, легко нацелиться на заданный индекс в массиве данных, но это становится сложным, если мне нужно использовать computed
с get()
, взрывающим значение, и set()
, объединяющим их ... Но если нет более легкого магического пути, мне придется придерживаться его ...
Пример HTML:
<agreement inline-template>
<div v-for="(period, index) in ftc_trial_periods">
<input type="number" min="1" v-model="??" required>
<select v-model="??" required>
<option>days</option>
<option>months</option>
<option>years</option>
</select>
</div>
</agreement>
Пример компонента:
Vue.component('agreement', {
data() {
return {
ftc_trial_periods: []
}
}
});
Когда число изменяется или когда выбирается опция, я бы хотел, чтобы значение было конкатенировано / установлено / добавлено в ftc_trial_periods
. Например, ftc_trial_periods
может быть: ['1 day', '3 months']
.