Angularjs 防止损坏电子邮件输入

Angularjs 防止损坏电子邮件输入,angularjs,unicode,domain-name,Angularjs,Unicode,Domain Name,如果我有一个,并且用户输入了一个,角度编辑:除了它不是Angular的错误-有关详细信息,请参阅自动将值转换为,这是一个很好的功能,但是如果值显示回给用户,则用户会感到非常困惑。例如 abc@ábc.com 变成 abc@xn--bc-lia.com 当后端希望域的原始Unicode版本,而Angular应用程序发送punycode版本时,它也会导致问题 我可以使用例如将其转换回,但是有没有一种方法可以在Angular中执行此操作而不涉及其他库-告诉Angular不要进行编码,或者随后获取原

如果我有一个,并且用户输入了一个,角度编辑:除了它不是Angular的错误-有关详细信息,请参阅自动将值转换为,这是一个很好的功能,但是如果值显示回给用户,则用户会感到非常困惑。例如

abc@ábc.com
变成

abc@xn--bc-lia.com
当后端希望域的原始Unicode版本,而Angular应用程序发送punycode版本时,它也会导致问题

我可以使用例如将其转换回,但是有没有一种方法可以在Angular中执行此操作而不涉及其他库-告诉Angular不要进行编码,或者随后获取原始值

var myApp=angular.module'myApp',[]; 函数对象$scope{ } 将此文本复制到输入中:

abc@ábc.com

模型获取:{{addr}}

一旦您在输入型电子邮件上使用ng模型,angularjs就会在输入上使用它的魔力

在不使用ng模型的情况下尝试一下

一旦您在输入类型的电子邮件上使用ng模型,angularjs将在输入上使用它的魔力


在不使用ng model的情况下尝试一下,结果发现这不是因为它有棱角,它的Chrome Safari没有相同的行为,也没有测试过其他浏览器。例如,见

下面是一个没有角度的例子-在Chrome中试试这个:

功能更新{ document.getElementById'output'.innerText=document.getElementById'inp'.value } 将此文本复制到输入中:

abc@ábc.com

浏览器显示:


事实证明,这不是因为它的角度,它的Chrome Safari没有相同的行为,没有测试过其他浏览器。例如,见

下面是一个没有角度的例子-在Chrome中试试这个:

功能更新{ document.getElementById'output'.innerText=document.getElementById'inp'.value } 将此文本复制到输入中:

abc@ábc.com

浏览器显示:


至于今天:2021-05-06这些是关于将输入字段从键入时的type=email转换为Punycode的浏览器行为:

Chrome:转换为Punycode Firefox:不转换为Punycode Safari:不转换为Punycode 边缘:不转换为Punycode Internet Explorer:不转换为Punycode
如果您不想在Chrome上出现这种行为,请从您的输入字段中删除type=email

至于今天:2021-05-06这些是关于将输入字段从键入时的type=email转换为Punycode的浏览器行为:

Chrome:转换为Punycode Firefox:不转换为Punycode Safari:不转换为Punycode 边缘:不转换为Punycode Internet Explorer:不转换为Punycode
如果您不想在Chrome上出现这种行为,请从您的输入字段中删除type=email

但是我想将输入绑定到我的模型中——如果没有ng模型,我将如何实现这一点?您可以使用ng change,然后绑定到范围变量,但需要阅读一些文档。必须有一种方法来使用ng模型,同时防止angularjs在输入emailFYI上破坏它的魔力,如果你感兴趣的话,结果证明这不是Angular的错-发布了一个答案,但是我想将输入绑定到我的模型-没有ng模型,我如何实现这一点?你可以使用ng更改,然后绑定到范围变量,但是请阅读一些文档。必须有一种方法来使用ng模型,同时防止angularjs在输入emailFYI上破坏其魔力,以防您感兴趣,事实证明,这不是Angular的错——发布了一个这样的答案,我认为如果是这样的话,这个问题和答案可能会更容易在互联网上找到:阻止Chrome电子邮件输入表单转换为PunycodeTrue,但在这一点上,它基本上是我在答案中链接的内容的翻版吗?如果我在谷歌chrome电子邮件punycode上搜索,这个问题马上就会出现。你下面的答案是一个很好的观点!我认为,如果问题和答案是:阻止Chrome电子邮件输入表单转换为PunycodeTrue,那么在互联网上可能更容易找到,但在这一点上,它基本上是我在答案中链接的副本吗?如果我在谷歌chrome电子邮件punycode上搜索,这个问题马上就会出现。你下面的答案是一个很好的观点!