если мы очистим числовое входное значение (сделаем его пустым), в идеале фильтр не должен применяться, и все значения должны быть перечислены. Прямо сейчас, если мы применим какой-то фильтр, поместив число, скажем, 5 в поле ввода, он будет работать нормально, и все данные, соответствующие 5, будут перечислены внизу. Теперь, если мы очистим значение в поле ввода, в идеале все значения должны быть перечислены (без фильтра), но angular применяет нулевой фильтр для чисел, и все отфильтровывается (ng-repeat ничего не перечисляет).
input type = "number" ng-model = "age"
Примечание: нет проблем с type = text input
(Как вы упомянули) это происходит потому, что input[number]
назначает null
модели, когда поле пусто.
Ожидать, что это сработает так, как вы ожидаете, разумно (imo), но я не уверен, как мы могли бы решить эту проблему.
Исправлять его на стороне фильтра нежелательно, потому что null
может быть допустимым значением для поиска (и мы не можем рассматривать его как неопределенное). Исправление этого на NgModelController
, вероятно, тоже не является жизнеспособным решением.
@others : Мысли?
А пока вы можете использовать этот (не очень красивый) обходной путь:
<input type="number" ng-model="search.posts" />
...
<div ng-repeat="user in users | filter:((search.posts===null)?undefined:search)">...</div
Мы возвращаем null
потому что возврат undefined
из парсера устанавливает ошибку синтаксического анализа. Еще одна причина, почему это не лучший дизайн.
@Narretz Я хотел спросить, почему мы не возвращаем undefined
:-)
Я знаю, что этот пост довольно старый, но мне было очень плохо, пытаясь понять, как решить эту проблему, поэтому я хочу поделиться своим решением. Добавьте событие oninput в поле ввода и в функции javascript проверьте, является ли значение этого поля пустой строкой, если да, удалите значение поля ввода с помощью:
удалить document.getElementById ('что угодно'). значение;
Я не думаю, что атрибуты HTMLInputElement должны быть настраиваемыми
Самый полезный комментарий
(Как вы упомянули) это происходит потому, что
input[number]
назначаетnull
модели, когда поле пусто.Ожидать, что это сработает так, как вы ожидаете, разумно (imo), но я не уверен, как мы могли бы решить эту проблему.
Исправлять его на стороне фильтра нежелательно, потому что
null
может быть допустимым значением для поиска (и мы не можем рассматривать его как неопределенное). Исправление этого наNgModelController
, вероятно, тоже не является жизнеспособным решением.@others : Мысли?
А пока вы можете использовать этот (не очень красивый) обходной путь:
Демо скрипка