我知道这个问题很老,但我想与世界分享我很棒的新角度指令,我在 Github 上做了一个项目,我认为它与可用/可用的任何东西相比简直是摇滚......我以优秀的 Laravel 为基础PHP 框架并使其在 Angular 下可用......说得够多了,让我们举一些例子:
<!-- example 1 -->
<label for="input1">Simple Integer</label>
<input type="text" validation="integer|required" ng-model="form1.input1" name="input1" />
<!-- example 2 -->
<label for="input2">Alphanumeric + Exact(3) + required</label>
<input type="text" validation="alpha|exact_len:3|required" ng-model="form1.input2" name="input2" />
所以我可以在一个简单的指令中定义我想要的任何数量的验证规则,validation="min_len:2|max_len:10|required|integer"
并且错误消息将始终显示在下一个<span>
你们不喜欢它了吗?1 行代码用于输入,1 行代码用于错误显示,你不能比这更简单......哦,如果你想添加,我什至支持你的自定义 Regex :)
不再有 10 行的集群表单当您唯一需要的是 2 行时,1 个输入的代码,仅此而已,即使对于带有 5 个验证器的输入也是如此。不用担心表格不会失效,我也处理好了,这一切都处理得很好。
看看我的 Github 项目Angular-Validation并传播这个词 =)
编辑
为了使用户体验更加流畅,我添加了计时器验证。这个概念很简单,不要在用户忙于打字时打扰他,但要验证他是否暂停或更改输入(onBlur)......喜欢它!
您甚至可以根据自己的喜好自定义计时器,我决定在指令中将其默认为 1 秒,但如果您想自定义,您可以调用例如typing-limit="5000"
5 秒。超时。完整示例:
<input type="text" validation="integer|required" typing-limit="5000" ng-model="form1.input1" name="input1" />
编辑 #2
还添加了输入匹配确认验证(例如:密码确认),这是一个示例代码
<!-- input match confirmation, as for example: password confirmation -->
<label for="input4">Password</label>
<input type="password" name="input4" ng-model="form1.input4" validation="alpha|min_len:4|required" />
<label for="input4c">Password Confirmation</label>
<input type="password" name="input4c" ng-model="form1.input4c" validation="match:form1.input4,Password|required" />
编辑#3
重构了指令,因此<span>
不需要显示错误的要求,指令现在自行处理它,请参阅顶部反映的代码更改。
DEMO
添加了现场演示Plunker