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>
时间: 2024-10-09 13:32:25

angular2表单初体验的相关文章

angular2表单验证之ng2-validation学习

最近在使用ng2做前端.发现表单验证这块除了官网上给的示例,验证required.其他的都要自己写逻辑来实现.开发起来不是很方便.所以在网上找了下ng2表单验证的资源,觉得ng2-validation不错.所以做的例子.以便以后使用,也怕时间久了忘脑后去. 示例代码链接 首先从npm包管理服务器上下载安装. npm install ng2-validation --save 命令参数--save:使npm包信息保存在package.json文件的dependencies配置集合内.该集合是ng2

Angular2 表单验证相关

angular4响应式表单与校验http://blog.csdn.net/xiagh/article/details/78360845?locationNum=10&fps=1 How to implement Custom Async Validator in Angular4https://stackoverflow.com/questions/43366514/how-to-implement-custom-async-validator-in-angular4 How to add de

angular2的lazyload初体验

angular2自带了lazyload,就是路由的loadChild,要优化ng2项目必不可少. 先看一下效果(我随便写的ng2的demo)--这是主页---- 可以看到下面,有关4.4M,没有图片被加载.(刷新要强制刷新,避免浏览器缓存): 打开/h路由,然后强制刷新---- 有图片请求,资源成了4.9M. 打开我们的app.module.ts 写好主模块的路由,我这里,比如这样: 主要就是一个loadChildren属性,正常的路由是下面那个/a,是component属性,在加载的时候就直接

如何设计注册表单

注册页面是获取用户资料的主要途径,绝对不是越简单越好,设计要从体验上为用户提供方便,而不是降低注册门槛.菜鸟博主将结合以前看过关于表单设计的文章和自己的一些浅薄经验做一个总结: (以下内容偏向于B2B的网站) 一『注册的需求包括哪些』 注册的需求大概可以分为四个步骤:①用户类型的分类  ②将访客转化为会员  ③获取用户的资料 ④资料完善和增值引导 ①先看看各大网站是如何做用户类型分类这一步的:精心开发5年的UI前端框架! 京东商城 中国制造网国际站,将选择地区放在第一步,直接通过国内和国外的IP

yii初体验(3)表单提交

初体验 model层 控制层调用 浏览器显示信息: 实战 http://yiitest:7888/index.php?r=site/entry 方法 view 视图使用了一个功能强大的小部件 yii\widgets\ActiveForm 去生成 HTML 表单.其中的 begin() 和 end() 分别用来渲染表单的开始和关闭标签.在这两个方法之间使用了 yii\widgets\ActiveForm::field() 方法去创建输入框.第一个输入框用于 “name”,第二个输入框用于 “ema

Django初体验(一):自定义表单提交

注:本人使用的Django1.8.3版本进行测试 除了使用Django内置表单,有时往往我们需要自定义表单.对于自定义表单Post方式提交往往会带来由CSRF(跨站请求伪造)产生的错误"CSRF verification failed. Request aborted." 本篇博客只要针对"表单提交"和"Ajax提交"两种方式来解决CSRF带来的错误 一.表单提交 Template: <!DOCTYPE html> <html

用户体验之表单结构

在用css写表单结构的时候,添加一些属性,可以让极大地改善用户体验. 1,使用value属性为输入型表单域设置默认值. 2,使用title属性帮助屏幕阅读器用户获得足够的提示信息. 3,当标签(label元素)没有包含所关联的表单域时,可使用for属性来匹配和关联菜单域(绑定id值). 4,为每个表单域设置tabindex属性.方便用户用tab切换 5,对于复选框和单选按钮来说.将label置于表单域前面,可便于用户先阅读标签说明,再执行操作. 6,使用optgroup元素来组织select列表

WTF Forms – 使用 CSS 实现用户体验更好的表单

WTF forms 借助 CSS 提供友好的 HTML 表单控件,专为 IE9+ 以及最新的 Chrome.Safari 和 Firefox 浏览器.以文件输入控件的改进,使用 label 包裹在 input 的外贸,所以自定义控件可以正确触发文件浏览器,并且定义了点击时的样式,像复选框和单选框还有选中状态的样式. 您可能感兴趣的相关文章 创意无限!一组网页边栏过渡动画[附源码下载] 真是好东西!13种非常动感的页面加载动画效果 你见过吗?9款超炫的复选框(Checkbox)效果 超赞!基于 B

Angular2.js——表单(上)

表单创建一个有效.引人注目的数据输入体验.Angular表单协调一组数据绑定控件,跟踪变更.验证输入的有效性,并且显示错误信息. 接下来,主要内容有: 1.使用组件和模板构建Angular表单: 2.用ngModel创建数据绑定,以读取和写入输入控件的值. 构建Angular表单 我们想构建包含姓名,电话,特长三个字段的表单 1.我们可以参照快速启动那篇,创建一个名为forms的新项目,也可以使用之前的项目进行修改: 2.创建Person类: 3.创建控制此表单的组件: 4.创建具有初始表单布局