tip:

数据的双向绑定(数据的双向绑定只是针对表单)
实现数据的双向绑定需要在app_module.ts(根模块)中进行注册一些东西
import {FormsModule} from '@angular/forms';
@NgModule中的imports中进行声明一下FormsModule
 
html:
  

  <div class="form">
    <p>人员登录系统</p>
    <ul>
      <li>姓名:<input type="text" [(ngModel)]="peopleInfo.username"></li>
      <li>写别:<input type="radio" name="sex" value="1" [(ngModel)]="peopleInfo.sex"><label [for]="sex1">男</label>
            <input type="radio" name="sex" value="2" [(ngModel)]="peopleInfo.sex"><label [for]="sex2">女</label>
      </li>
      <li>
        城市:<select [(ngModel)]="peopleInfo.city">
            <option *ngFor="let item of peopleInfo.citylist" [value]="item">{{item}}</option>
          </select>
      </li>
      <li>爱好:<span *ngFor="let item of peopleInfo.hobby;let key=index">          
            <input type="checkbox" [id]="'checked'+key" [(ngModel)]="item.checked">
            <label [for]="'checked'+key">{{item.title}}</label>
          </span>
      </li>
      <li>描述:<textarea [(ngModel)]="peopleInfo.mark">{{mark}}</textarea></li>
      <li><button (click)="dosubmit();" class="submit">提交</button></li>
    </ul>
  </div>
 
ts中:
  

  public peopleInfo:any={
    username:"",
    sex:"1",
    city:"北京",
    citylist:["北京","上海","深圳"],
    hobby:[
      {title:"吃饭",checked:true},
      {title:"睡觉",checked:false},
      {title:"打豆豆",checked:false}],
    mark:""
    };
 
dosubmit(){
console.log(this.peopleInfo);
}

select 难点详解:
    [(ngmodle)]是双向绑定的写法,propleInfo.sex在ts中的值为1,默认为男,
    (判断peopleInfo。sex是否为1,是则为选中,判断的依据是peopleInfo.sex的值是否和当前的value的值相等,相等则为选中,反之未选中),
    当点击为女的时候,将女的值传递给sex
 
    select中:*ngFor="let item of peopleInfo.citylist" 循环获取到对象中的城市列表中的值,{{item}}是为循环出来的值,
    [value]="item"是为:value属性的值为item ,此时的value的值是和循环出来的值为相同。
    [(ngModel)]="peopleInfo.city" 绑定city是因为城市选项中绑定的一些值都是在select的时候有一个值,故此要给select标签进行一次绑定数据,
    当发现peopleInfo.city的值和option中的哪一个[value]="item"相等时。如果相等就选中那个option,同理,当option改变的时候,也会重新在赋值
    给peopleInfo.city。同时,当我们在option选择一个值的时候也是最终显示在select的标签之中,所以在此select进行数据绑定也就行得通了,在页面中看不到的可以通过
    console.log来查看
 
checkbox 难点详解:
    *ngFor="let item of peopleInfo.hobby;let key=index"循环peopleInfo对象下的hobby中的值,key=index是为索引,[id]和[for]的值是一样的是为了进行对应
    所以写成:[for]="'checked'+key",[id]="'checked'+key"都是为了拿到chedked值,[(ngModel)]="item.checked"是为了检测是否选中,在爱好选项中只有第一个值为true,
    其他为false,但是只要点中一个就要进行改变其checked的值,所以这是时候就会把itemed.checked的值赋值给ts中的checked,从而实现双向绑定。

ng form组件(表单)的更多相关文章

  1. 解析:使用easyui的form提交表单,在IE下出现类似附件下载时提示是否保存的现象

    之前开发时遇到的一个问题,使用easyui的form提交表单,在Chrome下时没问题的,但是在IE下出现类似附件下载时提示是否保存的现象. 这里记录一下如何解决的.其实这个现象不光是easyui的f ...

  2. 阻止form空表单提交----JavaScript

    网上看到很不错的阻止form空表单提交 第一种方法 <div class="warp"> <h2>登录到pfan空间</h2> <p> ...

  3. form注册表单圆角 demo

    form注册表单圆角 <BODY> <div class="form"> <ul class="list"> <li& ...

  4. Form提交表单页面不跳转

    1.设计源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...

  5. 使用easyui的form提交表单,在IE下出现类似附件下载时提示是否保存的现象

    之前开发时遇到的一个问题,使用easyui的form提交表单,在Chrome下时没问题的,但是在IE下出现类似附件下载时提示是否保存的现象. 这里记录一下如何解决的.其实这个现象不光是easyui的f ...

  6. WP Mail SMTP插件解决Contact Form 7表单提交失败问题

    WP Mail SMTP插件解决Contact Form 7表单提交失败问题 WP Mail SMTP是一款非常优秀的解决WordPress主机因为不支持或者是禁用了mail()函数,导致无法实现在线 ...

  7. elementui 多组件表单验证

      最近在做管理后台,vue2.0基于elementui框架进行开发. elementui的api中表单验证都是单个vue文件的验证.而我的保存按钮放在了父组件了,验证对象为三个子组件我的灵机一动 想 ...

  8. 关于form与表单提交操作的一切

    原文链接:http://caibaojian.com/form.html 你知道,一个表单里面只要有form元素,如果没有给action加一个默认值,为空白的时候,当你刷新页面时,会弹出一个警告框提示 ...

  9. 【转】document.form.action,表单分向提交

    document.form.action,表单分向提交,javascript提交表单 同一个表单可以根据用户的选择,提交给不同的后台处理程序.即,表单的分向提交.如,在编写论坛程序时,如果我们希望实现 ...

  10. 【开发】Form Validate 表单验证 扩展应用

    目录: ★.文本输入框(easyui-textbox) ★.数字框(easyui-numberbox) ★.时间(easyui-datebox) ★.文本域(easyui-textbox easyui ...

随机推荐

  1. 2014 西安 The Problem Needs 3D Arrays

    The Problem Needs 3D Arrays 题意:给你n个数, 然后1-n的数, 然后要求按顺序选出m个数, 求 逆序数/m 个数的 最大值是多少. 题解:裸的最大密度子图.逆序的2个数建 ...

  2. Error executing DDL via JDBC Statement 导致原因之一:列名使用了sql关键字

    WARN: GenerationTarget encountered exception accepting command : Error executing DDL via JDBC Statem ...

  3. Junit测试Controller(MockMVC使用),以及传输@RequestBody数据解决办法

    转自:http://www.importnew.com/21153.html 一.单元测试的目的 简单来说就是在我们增加或者改动一些代码以后对所有逻辑的一个检测,尤其是在我们后期修改后(不论是增加新功 ...

  4. 基于SSM后台管理系统/人事管理系统

    今天给大家分享一个基于SpringMVC+Mybatis+Mysql的后台管理系统,顾名思义,一个系统一般分为前台和后台,前台主要面向用户,而后台主要面向的则是管理员,后台和前台有所不同,后台的业务一 ...

  5. Ajax请求纯文本问题

    今天在学习Ajax时遇到一个问题: Ajax有个open(method String,url,boolean)方法,此方法有三个参数: 参数一:提交数据的请求,有GET和POST请求 GET:获取数据 ...

  6. MySql(二)_NHibernateHelper管理会话工厂

    1.定义接口的好处: (1) 清楚的看到里面有哪些方法: ( 2 )  可以更换实现类:Nhibernate实现件可以更换: Manger文件夹(另外两个是Model.Mappings文件夹) 首先M ...

  7. a417: 螺旋矩陣

    题目: 每行有一正整数T,代表有几组测试数据 接下来有T行,每行有N.M两正整数 N为矩阵长宽,就是会有N*N矩阵 M为方向,M=1为顺时钟,M=2为逆时钟 N范围为1~100之间 思路: 所以,代码 ...

  8. Java Synchronized Method This Static Class Object 区别

    1. 必须基于对象 Synchronized Method 和 Synchronized(this) 块,除了范围小点 (方法和块),没差别都是阻塞整个对象 - 如果对象有多个 Synchronize ...

  9. Spring——依赖注入(DI)详解

    声明:本博客仅仅是一个初学者的学习记录.心得总结,其中肯定有许多错误,不具有参考价值,欢迎大佬指正,谢谢!想和我交流.一起学习.一起进步的朋友可以加我微信Liu__66666666 这是简单学习一遍之 ...

  10. [原创] Matlab 指派问题模型代码

    指派问题的基本内容 一般来说指派问题解决的是如何将任务分配到人,使得任务完成的效益最大化(成本型效益则求最小值,利润型效益则求最大值).上述问题一个 0 - 1 整数规划问题. 问题围绕着任务和人展开 ...