【问题标题】:Updating Input Model from within Ng-Paste is Overwritten by the Paste Action从 Ng-Paste 更新输入模型被粘贴操作覆盖
【发布时间】:2017-10-19 19:17:29
【问题描述】:

我们的工具:AngularJS 1.5.11 w/ Angular Material v?

理念

我们试图允许用户将他们从 Excel 或 Google 电子表格复制的单行或单列数据(在我们的用例中为整数)粘贴到我们数据表中的单列输入中。如果它们粘贴到输入中,我们希望使用粘贴数据中的相应值填充该输入及其下方的输入。

这基本上就像从 Excel 电子表格中复制列/行并将其粘贴到我们的数据表列之一,就像您期望复制的数据粘贴到任何其他电子表格一样。

问题

当用户粘贴时,我们已经能够通过 JQLite $event 对象获取和解析粘贴的数据,并将这些数据值放入绑定到模板控制器的数组中。然后我们遍历其输入应该更改的行,并将新值分配给该行输入的正确“ng-model”属性。问题是 ng-paste 函数似乎在粘贴的数据绑定到初始输入模型之前执行,所以当我们在循环中更改第一个模型时,它会被覆盖(或其他东西)。基本上,初始输入包含粘贴的数据,而不是我们写入模型的值。

猛击

这里:https://embed.plnkr.co/Vt2jDiF7pVmrbYpuoz0E/ 测试:任何由空格、逗号、换行符、回车符或制表符分隔的值集都应该适用于我们的代码。复制这一行: 5.3245,6234.3443,95.2453,10.2594 并将其粘贴到其中一个输入中以查看它是如何中断的。

【问题讨论】:

    标签: javascript angularjs angular-ngmodel ng-paste


    【解决方案1】:

    解决办法:

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

    ev.preventDefault()
        return;
    

    上面的 sn-p 可以防止实际的粘贴动作发生。

    【讨论】:

      猜你喜欢
      • 2011-04-13
      • 2022-01-04
      • 2021-04-19
      • 2013-08-15
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      相关资源
      最近更新 更多