169 похожих чатов

Ребята, может кто подсказать, Есть нативный инпут с ngModel.

В inputModelChange смотрю что в this.inputModel и если не тот символ, то меняю. Например 5 меняю на x и все работает. Но если менять на пустой символ, то он в модели меняется, но в input отображается например пробовал 6 менять на ''. Как такую задачу решать не пойму? Хочу запрещать ввод определенных символов или менять их на другие.
<input [(ngModel)]="inputModel"
(ngModelChange)="inputModelChange($event)"
>

24 ответов

4 просмотра

У тебя тут дублирование ивентов [(ngModel)] это то же самое, что и [ngModel] + (ngModelChange) Попробуй так ``` <input [ngModel]="inputModel" (ngModelChange)="inputModelChange($event)" > ```

Alexandr-Manyunin Автор вопроса
Kirill Sklyarov
У тебя тут дублирование ивентов [(ngModel)] это то...

Попробовал, поведение такое же. Получается если я в модель тоже строковое значение устанавливаю, в инпуте почему-то оно не обновляется( неужели ещё и в инпуте надо руками менять. Почему 6 отображается, хотя в модели ее нет. Попробовал так, работает. Но выглядит как костыль, явно должен быть способ правильнее. const newValue = this.inputCallback(this.inputModel); this.inputModel = newValue; this.inputField.nativeElement.value = newValue;

Alexandr Manyunin
screenshot Попробовал, поведение такое же. Получается если я ...

скинь код, что выполняется в методе inputModelChange($event)

Alexandr-Manyunin Автор вопроса
Kirill Sklyarov
скинь код, что выполняется в методе inputModelChan...

Да там так для проверки. return value.replace(/5/g, 'x').replace(/6/g, '');

Alexandr Manyunin
Да там так для проверки. return value.replace(/5/g...

а почему ретурн? Надо присвоить this.inputModel получившееся значение

Alexandr-Manyunin Автор вопроса
Kirill Sklyarov
а почему ретурн? Надо присвоить this.inputModel п...

Так норм работает, но не пойму почему и в модель надо писать и в input. Если в input не буду писать, то 5 заменятся на x, а 6 на пустое значение нет. Хотя в модели 6 не будет.

Alexandr Manyunin
screenshot Так норм работает, но не пойму почему и в модель н...

<input [ngModel]="inputModel" (ngModelChange)="inputModelChange($event)" > inputModelChange(value: string): void { this.inputModel = this.inputCallback(value); }

Alexandr-Manyunin Автор вопроса
Kirill Sklyarov
<input [ngModel]="inputModel" (ngModelChan...

banana убрал сразу. Не помогает. Причем когда ввожу пять, она отображается как x. Хотя по консоли в nativeElement лежит 5. Видимо она потом в нативном инпуте обновляется. Но для 6, когда пустое значение обновления не происходит. Элементарная задача и чет нагуглить даже не могу)

Alexandr-Manyunin Автор вопроса
Vadim Malovaniy
ты хочешь маску сделать?

Не маску, а замену одних символов на другие. В том числе какой-то символ поменять на пустой.

Alexandr-Manyunin Автор вопроса
Vadim Malovaniy
Чекни мой пример. Может поможет

там через keyup, а если ctrl-c вставлять будут оно сработает)?

Alexandr-Manyunin Автор вопроса
Vadim Malovaniy
через ctrl-v работает

Посмотрю, но все равно кажется что смотреть на keyup это какой то обходной путь. У меня этот компонент уже с CVA и его методы для другого заняты(

Alexandr Manyunin
screenshot banana убрал сразу. Не помогает. Причем когда вво...

в общем, запустил я подобный пример у себя. 1. В инпуте лежит какое-то значение 2. Это значение эквивалентно проперти в компоненте 3. Ты пишешь в инпуте что-то 4. Срабатывает событие ngModelChange. 5. Сразу же удаляетсяудаляешь ненужный символ. 6. В инпуте осталось лежать новое неправильное значение 7. В inputModel записалось новое исправленное 8. Это новое исправленное значение равно старому до того, как ты ввёл. 9. Из-за того, что новое значение равно предыдущему, не срабатывает чейндж-детекшн. Как-то так

Alexandr-Manyunin Автор вопроса
Kirill Sklyarov
в общем, запустил я подобный пример у себя. 1. В ...

Хм, спасибо за объяснения, т. е. если onPush убрать должно заработать? Или вручную проверку вызывать?

Alexandr Manyunin
Хм, спасибо за объяснения, т. е. если onPush убрат...

при дефолтной стратегии я попробовал сделать detectChange(), не сработало

Alexandr-Manyunin Автор вопроса
Kirill Sklyarov
при дефолтной стратегии я попробовал сделать detec...

Видимо где-то в кишках ангуляра надо смотреть. Да и с его стороны логично, если модель та же, зачем менять инпут. Спасибо

Alexandr-Manyunin Автор вопроса

Пока не смог найти) если кто посоветует, буду благодарен.

Alexandr-Manyunin Автор вопроса

Так мне не маска нужна, а заменять введенное другим, например транслитеризацию реализовать

Alexandr-Manyunin Автор вопроса

Так, надо будет тогда посмотреть, спасибо)

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann Chapmann
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
Есть вопрос: допустим есть железка с каким-то интерфейсом(допустим usb), но как по этому интерфейсу железкой управлять неизвестно, прог нету, а управлять очень хочется надо. К...
Mixail Frolov
15
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
13
Карта сайта