Vue: Удалить атрибут, если v-model.number пуст

Созданный на 22 мая 2017  ·  4Комментарии  ·  Источник: vuejs/vue

Какую проблему решает эта функция?

Решает проблему с шаблоном проектирования, которая, конечно же, ожидается от потока MVM, включая v-model.number, создающего пустую строку.

Когда я ввожу число, а затем удаляю текст из ввода, он превращается в строку в реактивном объекте данных.

Это, безусловно, серьезная проблема с удобством использования и кастингом, и я не вижу цели сохранять в модели пустой строковый атрибут. Он должен быть вырезан из модели, когда она пуста - точно так же, как вы создаете новые атрибуты в текстовой записи, все должно быть наоборот.

Это, безусловно, проблема с шаблоном проектирования, которую следует решить, ее не нужно каждый раз внедрять на уровне приложения, это небольшое исправление, которое многое добавит в VueJS2, и я уверен, что многие другие согласятся со мной в этом!

Как выглядит предлагаемый API?

В настоящее время, когда ввод пуст

v-model.number = "model.number"
model = {
количество: ""
}

Что делать, если ввод пуст

v-model.number = "model.number"
model = {
}

Самый полезный комментарий

@posva После дальнейшего понимания реактивности Vue, возврат null определенно будет лучшим вариантом, чем возврат строки

Все 4 Комментарий

Думаю, текущее поведение вполне ожидаемо.
Поскольку v-model - это просто синтаксический сахар для v-bind:value и v-on:input , похоже, не создается сцена, в которой обработчик событий input удаляет свойство объекта ( и, возможно, нарушить реактивность этого свойства).

Я найду работу, спасибо :) 👍

Как вы видели в # 4742, это ожидаемое поведение. причина в том, чтобы позволить пользователю узнать, когда во вводе не указано значение . В противном случае пользователь может ввести 0, а также пустой ввод.

@posva После дальнейшего понимания реактивности Vue, возврат null определенно будет лучшим вариантом, чем возврат строки

Была ли эта страница полезной?
0 / 5 - 0 рейтинги