【问题标题】:AngularJS: ngMessage weird behavior with input with type "email"AngularJS:ngMessage 奇怪的行为,输入类型为“email”
【发布时间】:2016-03-19 02:11:39
【问题描述】:

我从Todd Motto's blog 关注Moving from ngModel.$parsers /ng-if to ngModel.$validators /ngMessages 文章,我想从ng-if 迁移到ng-messages。但是当我尝试向用户显示<input type="email"> 的两条不同消息时,ng-messages 指令的行为非常奇怪:首先,当用户将字段留空时(然后出现 required 错误),其次,当格式错误时(然后 email发生错误) - 它同时显示 requiredmail 消息,但我的旧代码只显示一条消息 - 关于 required 错误 - 我认为这是受欢迎的行为。这是简化的代码:

<form name="ngMessageMailForm">
  <input type="email" required="" name="email" ng-model="ctrl.ngMessageMail" />
  <div ng-messages="ngMessageMailForm.email.$error" ng-if="ngMessageMailForm.email.$touched">
    <span ng-message="email">
      E-mail has not proper format<br />
    </span>
    <span ng-message="required">
      E-mail is required<br />
    </span>
  </div>
</form>

您可以在此 Plunker 中找到新旧代码之间的比较:Ng-if vs ng-messages at plnkr.co,以重现 ng-message 在邮件输入内部和外部单击的奇怪行为。在ng-if 表单的情况下,您将看到一条消息,在ng-message 表单的情况下,您将看到两条消息。 从ng-if 迁移到ng-messages 时我错过了什么吗?提前感谢您的帮助。

【问题讨论】:

    标签: javascript angularjs html validation html-input


    【解决方案1】:

    一切都很好,但您错过了将angular-messages 库添加到您的项目中......

    将其文件添加到您的项目中并将ngMessages 注入到您的 angularjs 模块中,然后您就可以开始了...

    here is update plunker

    【讨论】:

    • 非常感谢 - 确实我忘了把它包括在内,现在它就像一个魅力:)
    猜你喜欢
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 2014-10-23
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2015-01-09
    相关资源
    最近更新 更多