简单的来谈一谈angular2.0的表单
来源:互联网 发布:数据库技术发展 编辑:程序博客网 时间:2024/06/16 10:04
这一次真的只是简单聊一聊。
开门见山吧~~~~
首先先创建一个Hero模板类。
里面含有如下内容:
export class Hero{
constructor(
public id:number,
public name:string,
public power:string,
public alterEgo?:string
){}
}
注意:?表示可选的。
看hero里的代码就知道有一个Hero类,里面有四个属性,包括一个可选属性。
下面再介绍组件。所有的解释都写在代码里面了。
import { Component, OnInit } from '@angular/core'; //OnInit用于初始化,可以不需要,//我这边是自动创建的才会有import { Hero } from './hero'; //引入Hero.ts 因为需要在里面调用它。总之就是那里需要调用哪里就引入/* Angular 表单分为两个部分:基于HTML的模板和组件的类,用来程序处理数据和用户交互。 */@Component({ selector: 'hero-from', //到时候只需要在app.module.ts里面引入<hero-from>标签就可以将我们的视图显示 templateUrl: './hero-from.component.html', //这边采用的是引入模板, //也就是所有的表单代码都写在独立的html5页面 styleUrls: ['./hero-from.component.css'] //如果需要对其进行样式操作就可以写这个,不需要就可以不写。 //其实像这种引入外部模板的方式虽然会比都写在一个页面缓慢,但是这样单独写出来可以方便我们修改操作,而且浏览器是有 //缓存的,只是第一次的时候刷出比较慢,后面都比较快。 })export class HeroFromComponent implements OnInit { ngOnInit() { //如果没有OnInit 就可以不需要 } powers=['Really Smart','Super Flexible','Super Hot','Weather CHANGER']; myHero=new Hero(18,'DR IQ',this.powers[0],'chuck Overstreet');//按照hero类的格式插入数据 submitted=false; //这是判断表单是否提交的 onSubmit(){ //一个方法 this.submitted=true; } addHero(){ //一个添加英雄的方法 this.myHero=new Hero(42,'',''); }}当然还需要在app.module中引入
import { BrowserModule } from '@angular/platform-browser';import { NgModule } from '@angular/core';import { FormsModule } from '@angular/forms'; //需要引入表单模型import { HttpModule } from '@angular/http';import { HeroFromComponent } from './hero-from/hero-from.component'; //引入上面编写的组件@NgModule({ declarations: [ HeroFromComponent //需要引入的,名字记得和上面{}里面对应 ], imports: [ BrowserModule, FormsModule, //导入表单模型 HttpModule ], providers: [], bootstrap: [AppComponent]})export class AppModule { }其实我在webstorm里面全部都会自动引入。如果你的app.module.ts里面也有了就不需要引入了。
接下来看看在hero-form.component.html里面怎么写的。
<!--模块一--> <div [hidden]="submitted"><!--默认未提交表单 false--> <h1>Hero Form</h1> <form (ngSubmit)="onSubmit()" #heroForm="ngForm">模板引用变量可以访问模板中输入框的 Angular 控件//。这里,创建了名叫heroForm
的变量,并且赋值为"ngForm" <div> <label for="name">Name</label> <input type="text" id="name" required [(ngModel)]="myHero.name" name="name" >//myHero对应组件里面命名的MyHero </div> <div> <label for="alterEgo">Alter Ego</label> <input type="text" id="alterEgo" [(ngModel)]="myHero.alterEgo" name="alterEgo"> </div> <!--[]从模型到视图的单向数据绑定 在使用ngModel
做双向数据绑定之前,得先导入FormsModule
, 把它加入 Angular 模块的imports
列表。 ()这是从视图到模型的反向单向数据绑定。 [(ngModel)]双向数据绑定 必须具有name属性--> <div> <label for="power">Hero Power</label> <select id="power" required [(ngModel)]="myHero.power" name="power" > //这边是一个下拉框//ngFor
的*
前缀表示<option>
及其子元素组成了一个主控模板。 <option *ngFor="let pow of powers" [value]="pow">{{pow}}</option> //*ngFor将定义的powers//获取到,并采用{{}}让其显示 </select> </div> <!--表单不能通过验证不能按--> <button type="submit" [disabled]="!heroForm.form.valid">Submit</button> <!--两个方法 一个addHero 一个是本身heroForm拥有的重置 当点击button时出现的是模块二里的东西--> <button type="button" (click)="addHero(); heroForm.reset()">New Hero</button> </form> </div><!--模块二--> <div [hidden]="!submitted"> <h2>You submitted the following:</h2> <div> <div>Name:{{ myHero.name }}</div> </div> <div> <div>Alter Ego :{{ myHero.alterEgo }}</div> </div> <div> <div>Power:{{ myHero.power }}</div> </div> <br> <button (click)="submitted=false">Edit</button><!--重回模块一--></div>
0 0
- 简单的来谈一谈angular2.0的表单
- Angular2路由的简单实用
- Angular2表单<2>模型驱动的表单(Model-Driven Forms)
- Angular2表单<1>模板驱动的表单(Template-Driven Forms)
- [OGRE]基础教程来六发:来谈一谈帧的监听
- Angular2 中管道@Pipe的简单用法
- 使用简单jQuery工具来实现表单的验证
- 由webshell攻击简单谈一谈系统的某些漏洞
- 简单谈一谈php中var关键字的作用和意义
- 谈一谈stl的iterator
- 谈一谈失败的经历
- 谈一谈神奇的ShadowDOM
- Angular2.0视频教程来了!(视频和PPT的链接都在底部)
- Angular2.0视频教程来了!
- 简单的表单验证
- 简单的表单
- 简单的 表单验证
- 简单的表单验证
- 国内一线互联网公司内部面试题库
- Python 实现matlab数据绘制
- 不同数据库中临时表的使用说明
- 屏幕输入法
- 大小堆 排序
- 简单的来谈一谈angular2.0的表单
- Cocos2dx-CCEditBox输入框中英文检测
- 通过easy_install安装egg库遇到的问题
- 蓝桥杯 历届试题 九宫重排
- [Gradle系列]Gradle打包apk多版本,多渠道,多环境,多功能,多模块随心所欲
- Atitit.软件中见算法 程序设计五大种类算法
- 使用POI是读取excel文件中电话号码及日期出现的问题及解决
- week4_day3_JavaSE
- ibatis对数据库进行批量操作