Обновление модели ввода из Ng-Paste перезаписывается действием вставки

Наши инструменты: AngularJS 1.5.11 w/ Angular Material v?

Идея

Мы пытаемся позволить пользователю вставить одну строку или столбец данных (в нашем случае - целые числа), которые они скопировали из таблицы Excel или Google, в один столбец входных данных в нашей таблице данных. Если они вставляются во вход, мы хотим заполнить этот вход и входы под ним соответствующими значениями из вставленных данных.

По сути, это было бы похоже на копирование столбца / строки из таблицы Excel и вставку их в один из столбцов нашей таблицы данных, как можно было бы ожидать, чтобы скопированные данные вставлялись в любую другую таблицу.

Эта проблема

Когда пользователь выполняет вставку, мы смогли извлечь и проанализировать вставленные данные через объект события JQLite $ и поместили эти значения данных в массив, связанный с контроллером нашего шаблона. Затем мы перебираем строки, чьи входы должны изменяться, и присваиваем новые значения правильному свойству 'ng-model' для ввода этой строки. Проблема в том, что кажется, что функция ng-paste выполняется до того, как вставленные данные привязываются к исходной модели ввода, поэтому, когда мы изменяем эту первую модель в нашем цикле, она перезаписывается (или что-то в этом роде). По сути, первоначальный ввод содержит вставленные данные вместо значения, которое мы записали в модель.

шлепнуть

Здесь: https://embed.plnkr.co/Vt2jDiF7pVmrbYpuoz0E/ TO TEST: Любой набор значений, разделенных пробелами, запятыми, новыми строками, возвратами каретки или вкладками, должен работать с нашим кодом. Скопируйте эту строку:5.3245,6234.3443,95.2453,10.2594и вставьте его в один из входов, чтобы увидеть, как он ломается.

1 ответ

Решение

Решение:

https://plnkr.co/edit/KjA1gnQj6JYbxFswLQjd?p=preview

ev.preventDefault()
    return;

Приведенный выше фрагмент предотвращает фактическое действие вставки.

Другие вопросы по тегам