问题标签 [ng-paste]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
319 浏览

javascript - ng-paste 和 onpaste,如何在粘贴新文本时保留/获取现有文本

我正在使用ng-paste并且onpaste喜欢这样,

input文本some<CURSOR>data(其中<CURSOR>代表光标的位置)

当我按Cmd+V调用粘贴事件时,

它有效,但我只能得到粘贴的文本,我想要的是some<PASTED DATA>data,有什么想法吗?

PS我不得不使用onpaste="return false;",否则文字变成<PASTED DATA><PASTED DATA>

0 投票
2 回答
2592 浏览

javascript - Ng-Paste - 以数组或列表的形式访问粘贴的数据

理念

我们正在 Angular 1.5.x 中构建一个应用程序,并且我们正在尝试实现一项功能,该功能允许用户从 Excel 工作表或任何其他电子表格中粘贴单列单元格(单列,任意行数)输入。

我们有一个包含如下内联输入的数据表: 数据表

这个想法是,当他们将从电子表格的单列复制的数据粘贴到其中一个输入中时,数据将逐个单元格地解析,并按降序分配给每个输入端。IE 如果我将包含 [4.52, 6.235, 9.2301] 的一列单元格粘贴到包含 15.23 的顶部输入中,则 15.23 将变为 4.52,3.1234 将变为 6.235,3.1322 将变为 9.2301。我们知道如何将变量分配给输入,但我们需要数组格式的剪贴板数据,而不是一个大字符串。

问题

我们已经研究过使用 ng-paste 指令和 $event.clipboardData 属性来做到这一点,但我们只能以字符串的形式访问数据,虽然我们有一种解析字符串的方法,但错误会少得多如果我们可以访问以数组或列表形式传入的元素,以防止我们最终使用 delims 分解该字符串时出现任何错误,则很容易发生这种情况。

是一个我们已经在尝试的工作plunker。

这是要复制并粘贴到输入中的示例数据集:

出于某种原因,从 excel 电子表格中复制列时,值之间没有分隔符。当我们从单行的多列而不是单列的多行复制时,我可以在 '\n' 字符上使用 .split() 并且它工作正常。但是,最好允许用户从单行和单列复制两者。问题只是当您从 excel 复制列时没有分隔符。

0.89663.91783.91773.91773.9178

这是从 excel/google 表格粘贴的内容^,但您可以随意将这些值放在电子表格的单个列中并从那里复制。我们可以确定粘贴的数据将来自电子表格。

解决方案

关于如何将剪贴板数据作为数组获取的任何想法?

0 投票
1 回答
639 浏览

javascript - 从 Ng-Paste 更新输入模型被粘贴操作覆盖

我们的工具: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 并将其粘贴到其中一个输入中以查看它是如何中断的。

0 投票
1 回答
430 浏览

angular - ng-paste 在粘贴之前带来模型

假设我有

我在控制台上得到“未定义”。

我认为这是因为当调用 ng-paste 时,模型仍然是“未定义”,然后粘贴的值随之而来。

如何使用 ng-paste 使用粘贴的字符串?