angular表单经验分享
原文
https://www.jianshu.com/p/af359bd04f32
大纲
1、表单的名字不可以和传入的值的名字相同
2、在模板驱动表单的时候要使用angular表单的验证功能,需要将ngModel绑定到模板变量,通过模板变量来判断调用验证器
3、模板驱动表单如何绑定radio单选按钮
4、模板驱动表单如何绑定checkbox多选按钮
5、模板驱动表单如何绑定select单选
6、代码素材
1、表单的名字不可以和传入的值的名字相同
<!--
错误写法:#userName和[(ngModel)]='userName'
重传入的userName的名字相同,这样在解析模板的时候会出问题
-->
<input
name="userName" id="userName"
[(ngModel)]='userName'
required minlength="4" #userName="ngModel"
> <!--正确写法:-->
<input
name="userName" id="userName"
[(ngModel)]='un'
required minlength="4" #userName="ngModel"
>
2、在模板驱动表单的时候要使用angular表单的验证功能,需要将ngModel绑定到模板变量,通过模板变量来判断调用验证器
<!--
需要将ngModel绑定到模板变量#userName,
然后通过userName来调用angular的表单控制器
-->
<div class="form-field">
<label for="userName">名字:</label>
<input name="userName" id="userName"
[(ngModel)]='userName1'
required minlength="4" #userName="ngModel"
>
<div *ngIf="userName.invalid && (userName.dirty || userName.touched)">
<div *ngIf="userName.errors.required">
Name is required.
</div>
<div *ngIf="userName.errors.minlength">
Name must be at least 4 characters long.
</div>
</div>
</div>
3、模板驱动表单如何绑定radio单选按钮
<!--
//对应的ts文件中设置,这样单选按钮的默认选中就是man了
sex = 'man';
-->
<div class="form-field">
<label>性别</label>
<label class="subTitle" for="man">男:</label>
<input type="radio" name="sex" id="man" value="man" [(ngModel)]='sex'>
<label class="subTitle" for="feman">女:</label>
<input type="radio"
name="sex" id="feman" value="feman"
[(ngModel)]='sex'
>
</div>
4、模板驱动表单如何绑定checkbox多选按钮
<!--
对应ts文件中需要设置数据
noun = {
chinese:true,
english:true,
math:true,
run:true,
walk:true,
};
-->
<div class="form-field">
<label>名词</label>
<label class="subTitle" for="chinese">语文:</label>
<input type="checkbox"
name="chinese" id="chinese" checked="noun.chinese"
[(ngModel)]='noun.chinese'
>
<label class="subTitle" for="english">英语:</label>
<input type="checkbox"
name="english" id="english" checked="noun.english"
[(ngModel)]='noun.english'
>
<label class="subTitle" for="math">数学:</label>
<input type="checkbox"
name="math" id="math" checked="noun.math"
[(ngModel)]='noun.math'
>
<label class="subTitle" for="run">跑步:</label>
<input type="checkbox"
name="run" id="run" checked="noun.run"
[(ngModel)]='noun.run'
>
<label class="subTitle" for="walk">走路:</label>
<input type="checkbox"
name="walk" id="walk" checked="noun.walk"
[(ngModel)]='noun.walk'
>
</div>
5、模板驱动表单如何绑定select单选
<!--
对应的表单元素设置:weather = 'cloudy';
-->
<div class="form-field">
<label for="weather">天气</label>
<select id="weather" name="weather" [(ngModel)]='weather'>
<option value="sunny">晴天</option>
<option value="rain">雨天</option>
<option value="overcast">阴天</option>
<option value="cloudy">多云</option>
<option value="wind">大风</option>
</select>
</div>
6、代码素材
angular代码实例中的angular-form中讲述了一些angular的form的使用,里面不仅有模板驱动型表单不同类型字段的绑定还有包括响应式表单不同字段的绑定方式,希望能给读者提供到帮助。
angular表单经验分享的更多相关文章
- Angular 表单(二) - 模板驱动表单
import { Component, OnInit } from '@angular/core'; import { Hero} from '../hero'; @Component({ selec ...
- Angular 表单验证类库 ngx-validator 1.0 正式发布
背景介绍 之前写了一篇 <如何优雅的使用 Angular 表单验证>,结尾处介绍了统一验证反馈的类库 ngx-validator ,由于这段时间一直在新模块做微前端以及相关业务组件库, ...
- Angular表单 (一)表单简介
Angular 表单 angular提供了两种不同的方法来通过表单处理用户输入:响应式表单和模板驱动表单.二者都从视图中捕获用户输入事件.验证用户输入.创建表单模型.修改数据模型,并提供跟踪这些更改的 ...
- Angular表单验证
novalidate 去掉html5自带的验证 ng-minlength 规定输入文本的最小长度 ng-maxlength 规定输入文本的最大长度 ng-submit 接收一个方法名 ...
- angular表单
angular的表单,点击确定进行创建,支持批量创建,表单验证有样式提醒; <!DOCTYPE html> <html lang="en"> <hea ...
- DOM之表格与表单基础分享
我是沐晴,好久不见.马上要放假啦,也是比较的忙. 今天来谈谈表格和表单的基本知识.前期的写的都是比较基础的知识,后期会慢慢增加实例.一起来学习吧. 先看表格,DOM中提供了一些属性,便于我们获取表单节 ...
- 简单的angular表单验证指令
<html ng-app="myApp"> <head> <meta charset="UTF-8"> <title& ...
- angular表单验证实例----可用的代码
前段时间,公司做一个单页面,就是一个表单验证,早开始在菜鸟教程上关注了angular,所以下派上用场了 angular里面对于表单验证,设置了很多指令. 也就是说不用自己写一些逻辑,直接绑定指令就行. ...
- 从浅入深剖析angular表单验证
最近手上维护的组件剩下的BUG都是表单验证,而且公司的表单验证那块代码经历的几代人,里面的逻辑开始变得不清晰,而且代码结构不是很angular. 是很有必要深入了解表单验证. 入门之前,我觉得应该先了 ...
随机推荐
- MyBatis学习总结(11)——MyBatis动态Sql语句
MyBatis中对数据库的操作,有时要带一些条件,因此动态SQL语句非常有必要,下面就主要来讲讲几个常用的动态SQL语句的语法 MyBatis中用于实现动态SQL的元素主要有: if choose(w ...
- ZOJ 3587 Marlon's String 扩展KMP
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3587 题意:给出两个字符串S和T.S,T<=100000.拿出 ...
- QTemporaryDir及QTemporaryFile建立临时目录及文件夹(创建一个随机名称的目录或文件,两者均能保证不会覆盖已有文件)
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址:本文标题:QTemporaryDir及QTemporaryFile建立临时目录及文件夹 本文地址: ...
- 4.使用fastjson进行json字符串和List的转换
转自:https://blog.csdn.net/lipr86/article/details/80833952 使用fastjson进行自定义类的列表和字符串转换 1.环境 jdk1.8,fastj ...
- MySQL各个版本的区别
文章出自:http://blog.sina.com.cn/s/blog_62b37bfe0101he5t.html 感谢作者的分享 MySQL 的官网下载地址:http://www.mysql. ...
- layout-maxWidth属性用法
对于maxWidth属性,相信大家都不陌生.不过,今天我遇到了一个问题,就是当我希望一个relayout的宽度有个最大值的时候,用maxWidth却没办法实现.这里总结下maxWidth 的用法 1. ...
- Linux下读写寄存器
arm裸机下读写寄存器很容易,各个寄存器和内存的地址是单一地址空间,他们是用相同的指令进行读写操作的.而在linux下就要复杂很多,因为linux支持多个体系架构的CPU.比如arm和x86就不一样, ...
- PHP服务器环境打开配置文件
MAC 1. cd /usr/local/etc/nginx/servers vim www.xxx.com 2. 在/usr/local/etc/nginx/servers目录下,不同的 .con ...
- 洛谷——P1548 棋盘问题
https://www.luogu.org/problem/show?pid=1548#sub 题目描述 设有一个N*M方格的棋盘(l<=N<=100,1<=M<=100)(3 ...
- HTML高级标签(3)————表单的应用
在HTML开发中,标签的种类和数量非常多,不可能说每一种都研究透.非常多能够用CSS来控制的标签,我们基本没有必要在上面浪费时间.所以,我们仅仅要掌握在HTML开发中比較经常使用的标签就全然能够了. ...