Как обрабатывать ввод пользователя так, как пишет в Dart - PullRequest
1 голос
/ 10 мая 2019

Я пытаюсь создать веб-приложение с помощью Dart и HTML. У меня есть поле ввода HTML который получает тип текста. Я хотел бы обрабатывать текст, который вводит пользователь, когда вводит каждую букву, а не только когда он нажимает клавишу ВВОД или что-то в этом роде.

В настоящее время я придумала это решение в Dart, но оно печатает пользовательский ввод только тогда, когда нажимает клавишу ENTER, а это не то, что я ищу, как сказано.

import 'dart:html';

    void main() {
      TextInputElement text = querySelector("#input-text");
      text.autocomplete = "asas";
      text.onChange.listen((data) {
        parent.appendHtml('<p>${text.value}</p>');
      });
    }

Я посмотрел некоторые темы, такие как Futures, Streams и Broadcast Streams, но это не похоже на то, что мне нужно до сих пор. Если бы кто-то мог помочь, было бы здорово!

1 Ответ

0 голосов
/ 10 мая 2019

Onchange будет работать только так, потому что он слушает, чтобы отправить события.Вместо этого вы можете прослушивать событие поля ввода .onKeyUp.

Каждый раз, когда вы набираете поле ввода, и когда вы отпускаете клавишу, это событие будет зарегистрировано, и слушатели будут вызваны

https://dartpad.dartlang.org/02e27326c073de360f14bb9a9726f1c9

Вы можете увидеть этот пример на дротике в тот момент, когда вы печатаете что-то, что печатается.

Здесь также можно использовать onKeyDown для onKeyPress, но дело в том, что пользователь удерживает клавишунажатие на нее зарегистрирует все эти события, создавая n событий типа

...