从 Ng-Paste 中更新输入模型被粘贴操作覆盖
Updating Input Model from within Ng-Paste is Overwritten by the Paste Action
我们的工具:AngularJS 1.5.11 w/ Angular Material v?
想法
我们正在尝试允许用户将他们从 excel 或 google 电子表格复制的单行或单列数据(在我们的用例中为整数)粘贴到我们数据中的单列输入 table。如果它们粘贴到输入中,我们希望使用粘贴数据中的相应值填充该输入及其下方的输入。
这基本上感觉像是从 excel 电子表格复制 column/row 并将其粘贴到我们的数据 table 列之一,因为您希望复制的数据粘贴到任何其他电子表格。
问题
当用户粘贴时,我们已经能够通过 JQLite $event 对象获取和解析粘贴的数据,并将这些数据值放入绑定到模板控制器的数组中。然后我们遍历其输入应该更改的行,并将新值分配给该行输入的正确 'ng-model' 属性。问题是 ng-paste 函数似乎在粘贴数据绑定到初始输入模型之前执行,因此当我们在循环中更改第一个模型时,它会被覆盖(或其他)。基本上,初始输入保存的是粘贴的数据,而不是我们写入模型的值。
普朗克
此处:https://embed.plnkr.co/Vt2jDiF7pVmrbYpuoz0E/
测试:任何由空格、逗号、换行符、回车 returns 或制表符分隔的值集都应该适用于我们的代码。复制这一行:
5.3245,6234.3443,95.2453,10.2594
并将其粘贴到其中一个输入中以查看它是如何损坏的。
解决方法:
https://plnkr.co/edit/KjA1gnQj6JYbxFswLQjd?p=preview
ev.preventDefault()
return;
以上代码片段阻止了实际粘贴操作的发生。
我们的工具:AngularJS 1.5.11 w/ Angular Material v?
想法
我们正在尝试允许用户将他们从 excel 或 google 电子表格复制的单行或单列数据(在我们的用例中为整数)粘贴到我们数据中的单列输入 table。如果它们粘贴到输入中,我们希望使用粘贴数据中的相应值填充该输入及其下方的输入。
这基本上感觉像是从 excel 电子表格复制 column/row 并将其粘贴到我们的数据 table 列之一,因为您希望复制的数据粘贴到任何其他电子表格。
问题
当用户粘贴时,我们已经能够通过 JQLite $event 对象获取和解析粘贴的数据,并将这些数据值放入绑定到模板控制器的数组中。然后我们遍历其输入应该更改的行,并将新值分配给该行输入的正确 'ng-model' 属性。问题是 ng-paste 函数似乎在粘贴数据绑定到初始输入模型之前执行,因此当我们在循环中更改第一个模型时,它会被覆盖(或其他)。基本上,初始输入保存的是粘贴的数据,而不是我们写入模型的值。
普朗克
此处:https://embed.plnkr.co/Vt2jDiF7pVmrbYpuoz0E/
测试:任何由空格、逗号、换行符、回车 returns 或制表符分隔的值集都应该适用于我们的代码。复制这一行:
5.3245,6234.3443,95.2453,10.2594
并将其粘贴到其中一个输入中以查看它是如何损坏的。
解决方法:
https://plnkr.co/edit/KjA1gnQj6JYbxFswLQjd?p=preview
ev.preventDefault()
return;
以上代码片段阻止了实际粘贴操作的发生。