博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ionic使用angularjs表单验证(模板验证)
阅读量:5941 次
发布时间:2019-06-19

本文共 1991 字,大约阅读时间需要 6 分钟。

1什么是模板验证

顾名思义模板验证就是通过一些angularjs的属性来在html标签中验证,为了往模板驱动表单中添加验证机制,你要添加一些验证属性,就像原生的 HTML 表单验证器。 Angular 会用指令来匹配这些具有验证功能的指令。每当表单控件中的值发生变化时,Angular 就会进行验证,并生成一个验证错误的列表(对应着 INVALID 状态)或者 null(对应着 VALID 状态)。

2示例

这是我写的一个小demo,这种验证方式无需写js代码全部在标签 里使用angularjs的属性,其他地方也无需引入angular forms库,因为ionic会自动默认引入。

ahdasidhasidashdudi

记住密码

{
{promptMessage}}

用户名必须为6到10位
密码必须为6-16位

运行效果如下:

clipboard.png

3核心属性

可以看到[(ngModel)]="user.username"作用是绑定了我们在ts文件中定义的变量。

#username="ngModel"的作用是把我们绑定的模型值命名成username,变成了一个FormControl对象,这里不必纠结下节会讲。
required 验证是否为空 maxlength="10" 最大长度 minlength="6"最小长度。这些都是我们需要验证的条件。
*ngIf="username.invalid && (username.dirty || username.touched)"
*ngIf标签等于true时将错误信息显示出来username.invalid表示验证不合法返回true,username.dirty 判断是否改变了这个参数的值,username.touched表示是否有碰过表单,作用在于,刚打开表单页面是,里面参数都是空的,但无需显示错误信息。

进入model.d.ts文件看到部分源码如下

/**     * A control is `valid` when its `status === VALID`.     *     * In order to have this status, the control must have passed all its     * validation checks.     */    readonly valid: boolean;    /**     * A control is `invalid` when its `status === INVALID`.     *     * In order to have this status, the control must have failed     * at least one of its validation checks.     */    readonly invalid: boolean;

valid属性表示参数值校验后结果不通过为false,通过为true。

invalid则表示参数值校验不通过为true,通过为false。

/**     * A control is `dirty` if the user has changed the value     * in the UI.     *     * Note that programmatic changes to a control's value will     * *not* mark it dirty.     */    readonly dirty: boolean;    /**    * A control is marked `touched` once the user has triggered    * a `blur` event on it.     */    readonly touched: boolean;

dirty表示你是否没有改变过这个参数的值

转载地址:http://qdqtx.baihongyu.com/

你可能感兴趣的文章
元素居中问题汇总
查看>>
如何重装Citrix XenServer不丢失SR数据
查看>>
Android webkit 事件传递流程
查看>>
如何保护自己的android app
查看>>
inotify介绍及rsync + inotify 实时同步备份
查看>>
50、mysql基于mysql-proxy读写分离实战
查看>>
jquery easyui 操作总结
查看>>
[一文一命令]tail命令详解
查看>>
我的友情链接
查看>>
SpringMVC4 返回Json数据
查看>>
我的友情链接
查看>>
sharepoint 2007 网站操作 显示菜单不全
查看>>
如何使用charles对Android Https进行抓包
查看>>
XenServer中License的设置对各种操作的影响
查看>>
mesos-dns & marathon-lb
查看>>
工作随笔之nginx 应用场景
查看>>
排序算法之选择排序
查看>>
typedef函数指针用法
查看>>
iOS开发之观察者模式初探
查看>>
官方文档
查看>>