Взяв то, что я узнал из ответа Hiws, я создал строку отображения для поля и переменную для захвата фактического числа. Это позволяет мне выполнять математические вычисления с числом в удобочитаемом формате.
Мой сценарий теперь выглядит следующим образом. Я также перешел к оператору приведения типов в моем операторе return, чтобы удалить только 0 строк из поля ввода
new Vue({
el: '#app',
data() {
return {
points: 0,
displayPoints: ''
}
},
methods: {
numberFormat(value) {
this.points = Number(value.replace(/\D/g, ''))
return value == '0' ? '' : this.points.toLocaleString();
}
}
})
А мой html выглядит следующим образом. Я удалил все приведение чисел из ввода, так как это не очень хорошо сочетается с запятыми, которые я вставлял.
<div id="app">
<div>
<b-form>
<b-form-group
label-for="totalPoints"
description="Enter points."
>
<label for="totalPoints">Total Points</label>
<b-input-group append="pts">
<b-form-input
style="width: 20%"
id="totalPoints"
v-model="displayPoints"
placeholder="Enter your total points"
:formatter="numberFormat"
/>
</b-input-group>
</b-form-group>
</b-form>
<h3>Unformatted Points: {{ points }}</h3>
<h3>Formatted Points: {{ displayPoints }}</h3>
<h3>Math on Points: {{ points + points }}</h3>
</div>
</div>