angular2表单初体验
1.创建movie模型。
最近对angular2比较感兴趣,跟着官网学习一段,练习了一个表单demo!
src/app/movie.ts文件:
export class Movie{
constructor(
public id:number,
public name:string,
public age : string,
public hobby?:string
){}
}
2.创建表单组件。
src/app/movie-form.component.ts文件:
import {Component} from '@angular/core';
import { Movie } from './movie';
@Component({
moduleId:module.id,
selector:'movie-form',
templateUrl:'./movie-form.component.html'
})
export class MovieFormComponent{
introduce = ['小城之春', '音乐之城',
'疯狂原始人', '里约大冒险'];
model = new Movie(18,'July yu',this.introduce[0],'惊天魔盗团故事');
submitted = false;
onSubmit(){
this.submitted = true;
}
get disgnostic(){
return JSON.stringify(this.model);
}
newMovie() {
this.model = new Movie(42, '', '');
}
}
3.定义应用的根模块。
src/app/app.module.ts文件:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
import { MovieFormComponent } from './movie-form.component';
@NgModule({
imports: [ BrowserModule , FormsModule],
declarations: [ AppComponent , MovieFormComponent],
bootstrap: [ AppComponent ]
})
export class AppModule {
}
4.创建根组件。
src/app/app.component.ts文件:
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: '<movie-form></movie-form>'
})
export class AppComponent { }
5.创建表单模板。
src/app/movie-form.component.html文件:
<div class="container">
<div [hidden]="submitted">
<h1>Movie Form</h1>
<form (ngSubmit)="onSubmit()" #movieForm="ngForm">
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" id="name" required [(ngModel)]="model.name" name="name" #name="ngModel">
<div [hidden]="name.valid || name.pristine" class="alert alert-danger">
Name is required
</div>
</div>
<div class="form-group">
<label for="hobby">Alter hobby</label>
<input type="text" class="form-control" id="hobby" [(ngModel)]="model.hobby" name="hobby">
</div>
<div class="form-group">
<label for="intro">Movie introduce</label>
<select class="form-control" id="intro" required [(ngModel)]="model.introduce" name="intro" #intro="ngModel">
<option *ngFor="let i of introduce" [value]="i">{{i}}</option>
</select>
<div [hidden]="intro.valid || intro.pristine" class="alert alert-danger">
Power is required
</div>
</div>
<button type="submit" class="btn btn-success" [disabled]="!movieForm.form.valid">Submit</button>
<button type="button" class="btn btn-default" (click)="newMovie(); movieForm.reset()">New Movie</button>
</form>
</div>
<div [hidden]="!submitted">
<h2>You submitted the following:</h2>
<div class="row">
<div class="col-xs-3">Name</div>
<div class="col-xs-9 pull-left">{{ model.name }}</div>
</div>
<div class="row">
<div class="col-xs-3">Alter hobby</div>
<div class="col-xs-9 pull-left">{{ model.hobby }}</div>
</div>
<div class="row">
<div class="col-xs-3">introduce</div>
<div class="col-xs-9 pull-left">{{ model.introduce }}</div>
</div>
<br>
<button class="btn btn-primary" (click)="submitted=false">Edit</button>
</div>
</div>
angular2表单初体验的更多相关文章
- jQuery 浮动标签插件,帮助你提升表单用户体验
浮动标签模式(Float Label Pattern)是最新流行的一种表单输入域的内容提示方式,当用户在输入框输入内容的时候,原先占位符的内容向上移动,显示在输入的内容的上面.这里推荐的这款 jQue ...
- angular2 表单的理解
angular2表单分为两种,一种为模板驱动,一种为模型驱动: 个人理解两者的不同 模板驱动依靠H5规则进行验证,在提交表单时进行自定义验证: 模型驱动在加载时候已经加载了所有的验证自定义验证,所以不 ...
- Angular2 表单
1. 说明 表单是Web程序中的重要组成部分,构建良好以及实用的表单必须解决如下几个问题: (1). 如何跟踪及更新表单的数据状态 (2). 如何进行表单验证 (3). 如何显示表单验证信息 Angu ...
- Ajax提交表单初接触
<!doctype html> <html class="no-js"> <head> <meta charset="utf-8 ...
- [H5表单]html5自带表单验证体验优化及提示气泡修改
慕课网之前录制的视频,js/jquery各种宽高的理解和应用,最近终于上线了.还有一个html5左侧导航没有上线!最近慕课网系列课程让我录制一个html5表单验证的课程.今天就稍微说一下表单验证!另外 ...
- angular2 表单验证
模版式表单 (1) angular遇到form自动接管,不想自动接管,添加ngNoForm,当标签为div时,但想被表单接管,添加ngForm; (2) ngForm可以被模版本地变量引用,以便在模版 ...
- Angular2 表单验证相关
angular4响应式表单与校验http://blog.csdn.net/xiagh/article/details/78360845?locationNum=10&fps=1 How to ...
- angular2的lazyload初体验
angular2自带了lazyload,就是路由的loadChild,要优化ng2项目必不可少.代码已更新到ng-demo ->https://github.com/chenby/ng2-dem ...
- angular2的管道初体验
ng管道是应用里面比较重要的一个技术,他涉及很多功能 包括排序过滤 废话不说 直接上代码 新建个文件夹吧这个samplepipe.ts放进去 然后 你要做什么 在里面写管道代码 然后在app.modu ...
随机推荐
- struts2中Action訪问servlet的两种方式
一.IoC方式 在struts2框架中,能够通过IoC方式将servlet对象注入到Action中.通常须要Action实现下面接口: a. ServletRequest ...
- lua面向对象编程 《lua程序设计》 16章 笔记
Lua中的table就是一种对象,即它拥有状态.拥有独立于其值的标识(self).table与对象一样具有独立于创建者和创建地的征集周期 什么叫对象拥有独立的生命周期? Account = {bala ...
- 组播和广播的概念,IGMP的用途
1.组播和广播的概念 1) 组播 主机之间的通讯模式,也就是加入了同一个组的主机可以接收到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据. 主机可以向路由器请求加入或退出某个 ...
- 几个div并列显示效果消除之间的间隔
今天在做一个静态页面时,头部的广告条是很大一张图片,考虑到网页访问时的加载速度,因此需要把一幅图拆成几个尺寸较小的图片来作为背景图,但是采用div来布局时,出现了div不能显示在一行的情况,所以开始想 ...
- github使用和推送到服务器端。。。
Alan Alan -- :: 第二节:创建一个仓库(Create A Repo Repositories) 直接在自己的登录后进入 github.com 首页就可以看到, 下面一栏有四步.用来创建 ...
- X264参考手册
艺搜简介 基本语法: x264 [options]-o outfile infile 注意与ffmpeg的输入输出文件位置恰好相反: ffmpeg[options][[infile options]- ...
- JetNuke笔记 ( by quqi99 )
http://blog.csdn.net/quqi99/article/details/1624223 ———————————————————————————————————————————————— ...
- 【EasyUI】Tabs常用操作及href和content的异同
说明:EasyUI版本1.3.4 ,jQuery版本1.8.3 EasyUI Tabs常见使用方式 按照官方文档的说法,创建Tabs的方式有两种: 静态页面标签 动态JS代码 静态方式主要用于创建一些 ...
- 通知:spark meetup 第六次会议在北京举行
通知: Spark北京Meetup第六次活动(机器学习专题) 将于北京时间3月21日 下午14:00-18:00 在微软亚太研发集团总部大厦1号楼举行,主题包括: Julien Pierre Pr ...
- eclipse 配置JDK
JDK安装成功,eclipse也安装成功,这时候实际上是可以不配置JDK,因为系统已经默认给你配置好了,但是下面的情况需要配置:1.你系统中安装了多个JDK,某个项目工程需要更高版本的JDK等 工具/ ...