原文

  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表单经验分享的更多相关文章

  1. Angular 表单(二) - 模板驱动表单

    import { Component, OnInit } from '@angular/core'; import { Hero} from '../hero'; @Component({ selec ...

  2. Angular 表单验证类库 ngx-validator 1.0 正式发布

    背景介绍 之前写了一篇 <如何优雅的使用 Angular 表单验证>,结尾处介绍了统一验证反馈的类库  ngx-validator  ,由于这段时间一直在新模块做微前端以及相关业务组件库, ...

  3. Angular表单 (一)表单简介

    Angular 表单 angular提供了两种不同的方法来通过表单处理用户输入:响应式表单和模板驱动表单.二者都从视图中捕获用户输入事件.验证用户输入.创建表单模型.修改数据模型,并提供跟踪这些更改的 ...

  4. Angular表单验证

    novalidate   去掉html5自带的验证 ng-minlength    规定输入文本的最小长度 ng-maxlength    规定输入文本的最大长度 ng-submit  接收一个方法名 ...

  5. angular表单

    angular的表单,点击确定进行创建,支持批量创建,表单验证有样式提醒; <!DOCTYPE html> <html lang="en"> <hea ...

  6. DOM之表格与表单基础分享

    我是沐晴,好久不见.马上要放假啦,也是比较的忙. 今天来谈谈表格和表单的基本知识.前期的写的都是比较基础的知识,后期会慢慢增加实例.一起来学习吧. 先看表格,DOM中提供了一些属性,便于我们获取表单节 ...

  7. 简单的angular表单验证指令

    <html ng-app="myApp"> <head> <meta charset="UTF-8"> <title& ...

  8. angular表单验证实例----可用的代码

    前段时间,公司做一个单页面,就是一个表单验证,早开始在菜鸟教程上关注了angular,所以下派上用场了 angular里面对于表单验证,设置了很多指令. 也就是说不用自己写一些逻辑,直接绑定指令就行. ...

  9. 从浅入深剖析angular表单验证

    最近手上维护的组件剩下的BUG都是表单验证,而且公司的表单验证那块代码经历的几代人,里面的逻辑开始变得不清晰,而且代码结构不是很angular. 是很有必要深入了解表单验证. 入门之前,我觉得应该先了 ...

随机推荐

  1. Maven和Ant的差别

    近期做的项目中一直是在使用maven.可是要知道最早出来的构建工具是Ant,如今Ant依旧有好多人再用.于是自己就抽出来时间.学习了一下Ant的主要的使用.这样也能跟好的理解Maven提供的新特性. ...

  2. actionBar-双行字体大小修改

    <style name="BackupRestore.Theme.Person" parent="@style/BackupRestore.Theme"& ...

  3. thinkphp验证码(总结之后,效率非常好)

    thinkphp验证码(总结之后,效率非常好) 一.总结 1.总结:总结之后,效率非常好,复习的时候也才方便,也能深入到细处,非常方便建立熟悉感和突破使用困境 2.验证码使用中文集或者繁体集设置:这个 ...

  4. Office Open XML导出大数据

    Office Open XML导出大量数据到 Excel .NET使用Office Open XML导出大量数据到 Excel我相信很多人在做项目的都碰到过Excel数据导出的需求,我从最开始使用最原 ...

  5. 用Zebra打造Linux下小型路由器

    用Zebra打造Linux下小型路由器 现在的Internet网络相当庞大,不可能在不同的网络之间建立直接的连接,所以这时就必须用路由器为不同网络之间的通信提供路径选择.Linux下搭建路由器价格非常 ...

  6. php学习笔记3

    1.PHP 定界符 EOF 的作用就是按照原样,包括换行格式什么的,输出在其内部的东西: 2.在 PHP 定界符 EOF 中的任何特殊字符都不需要转义: 3.PHP 定界符 EOF

  7. 感谢党,软考过了。系统集成项目管理project师

    人品爆发了,刚用干巴巴的日语做完2小时的设计说明,回到家一查,人品爆发了.软考竟然过了. 绝对是评卷老师给人品啊!真想请他吃顿饭. 系统集成项目管理project师  64 53 幸运飞过! 今天真是 ...

  8. meld文件的脚本

    今天模仿着别人的脚本,结合网上的资料,摸索着写了一个简单的脚本,用来打开meld 工具.这个脚本虽然简单,但这是第一次自己写脚本,记录下来,作为自己python学习的起点.代码如下 #/use/bin ...

  9. 22. Spring Boot 动态数据源(多数据源自动切换)

    转自:https://blog.csdn.net/catoop/article/details/50575038

  10. OC中对于属性的总结(@property)

    在没有属性之前: 对成员变量进行改动都要用到设置器:setter来改动 Person *per =[[Person alloc] init]; 对象通过设置器对成员变量内容进行修该 [per setN ...