<input type =“email”/>在模态对话框中打破ng-model数据绑定

时间:2014-11-10 05:16:37

标签: angularjs angular-ui-bootstrap

我的应用使用带有简单输入元素的模态对话框

<input id="fieldEmail" class="form-control" type="text" ng-model="email" required="" />
email: {{ email }}

在显示模态时,我可以在输入字段中输入内容,并按预期在其旁边的文本中看到它。但是,如果我将输入类型更改为type =&#34; email&#34;它打破了数据绑定。输入不再回应。

还有其他人遇到过这个问题吗?

2 个答案:

答案 0 :(得分:9)

只有在输入字段包含有效的电子邮件时它才会回显。所以将有效的电子邮件放入输入字段并检查它是否正常工作。这是因为当type="email" ng-model仅获取有效的电子邮件值时,否则它将undefined

答案 1 :(得分:3)

这是因为&#34;电子邮件&#34;。即使我们使用type =&#39; number&#39;,也是&#39; ng-model&#39;除非您在文本框中输入一些有效数字,否则将被取消定义。对于所有HTML5输入类型,我们应该给出有效的输入来为ng-model赋值。 即使我们在文本框中使用正则表达式,在我们给出满足正则表达式的值之前,ng模型也是未定义的。

&#39; http://plnkr.co/edit/G2RlzO4q1zKEPP0T8xvF?p=preview`

<body>
<h1>Hello Plunker!</h1>
Enter 3 to 12 characters only.
<br/>
<input type="text" ng-model="name" ng-pattern="/^[a-z]{3,12}$/"/>
<br/>
{{name}}