ngMessages /角度验证不起作用

All*_*uce 6 angularjs

我既没有得到模板片段发出的值也没有运行验证.我的玉模板:

doctype html
html(lang='en', ng-app="Validate")
  head
    script(src='#{cdn_path}/angular.js/1.3.11/angular.js')
    script(src='#{cdn_path}/angular.js/1.3.11/angular-messages.js')
    script.
      angular.module('Validate', ['ngMessages']);
  body
    .container
      form(method="POST", action="/apply", name="myform", novalidate="")
        pre myform.name.$error = {{ myform.name.$error }}
        input.form-control(name="name", required="", pattern=".*[a-zA-Z].*", minlength=5)
        ng-messages(for="myform.name.$error")
          ng-message(when="required") Required!
          ng-message(when="min") Too small!
        input.btn(type='submit')
Run Code Online (Sandbox Code Playgroud)

生成的HTML:http://plnkr.co/edit/McyMXwW1b2Ae7kkwQ1sP

我想避免自定义指令或更多的Javascript方式.我究竟做错了什么?

squ*_*oid 18

发生这种情况是因为你没有将ng-model绑定到输入:-)

 <input name="name" ng-model="name" required="" pattern=".*[a-zA-Z].*" minlength="5" class="form-control">
        <ng-messages for="myform.name.$error">
        <ng-message when="minlength">Too small!</ng-message>
        <ng-message when="required">Required!</ng-message>
Run Code Online (Sandbox Code Playgroud)

Plunker: - http://plnkr.co/edit/kmNkfhdVOHQsstj6dpPT?p=preview


mni*_*chi 17

我只是有同样的问题并解决了它.我想分享它,所以没有人会像我一样浪费一个小时.

请确保以下内容:

1.加载ngMessages模块

<!-- Load Angular -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0-rc.0/angular.min.js"></script>

<!-- Load ngMessages -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0-rc.0/angular-messages.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

2.将ngMessages注入我们的应用程序模块

angular.module( "app", [ "ngMessages" ] );
Run Code Online (Sandbox Code Playgroud)

3.尝试更新的版本 出于某种原因,Doug Luce的代码只需将版本更改为例如4.11即可实现!