Есть input с ценой, он связан в числовой переменной
<input v-model = "price">
Я хочу сделать так, чтобы пока у инпута нет фокуса, то содержимое форматировалось: "12 345 руб.", а как только у инпута оказывался фокус ввода, то форматирование отменялось: "12345". После окончания ввода (потери фокуса), форматирование возвращалось.
Для форматирования цены у меня есть метод Number.rub(), который делает так
price = 12345;
console.log( price.rub() ); // 12 345 руб.
Вопрос, как сделать такое форматирование?
UPD: Раньше делал так
<input
v-model = "price"
@focus = "price = price._rub()"
@blur = "price = price.rub()"
>
где _rub() делает обратно из форматированной цены (из строки) снова число. Но, согласитесь, такой способ — это полный отстой, т.к. меняется туда-сюда тип переменной price.