Angular2组件开发—表单输入(四)

NgFormControl - 绑定已有控件对象

与NgControlName指令不同,NgFormControl将已有的控件/Control对象绑定到DOM元素 上。当需要对输入的值进行初始化时,可以使用NgFormControl指令。

下面的代码中,使用NgFormControl指令将DOM元素绑定到组件EzComp的成员 变量movie上,我们需要在构造函数中先创建这个Control对象

 1 @View({
 2     //将输入元素绑定到已经创建的控件对象上
 3     template : `<input type="text" [ng-form-control]="movie">`
 4 })
 5 class EzComp{
 6     constructor(){
 7         //创建控件对象
 8         this.movie = new Control("Matrix II - Reload");
 9     }
10 }

控件/Control是Angular2中对表单输入元素的抽象,我们使用其value属性,就可以获得对应的 输入元素的值。

与NgControlName指令的另一个区别是,NgFormControl不需要NgForm或NgFormModel的祖先

例如:

 1 <!doctype html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title>NgFor</title>
 6     <script type="text/javascript" src="lib/[email protected]"></script>
 7     <script type="text/javascript" src="lib/angular2.dev.js"></script>
 8     <script type="text/javascript" src="lib/system.config.js"></script>
 9 </head>
10 <body>
11     <ez-app></ez-app>
12     <script type="module">
13         import {Component,View,bootstrap} from "angular2/angular2";
14         import {Control,formDirectives} from "angular2/forms";
15
16         @Component({selector:"ez-app"})
17         @View({
18             directives:[formDirectives],
19             template:`
20                 <div>
21                     <ul>
22                         <!--将输入元素绑定到已经创建的控件对象-->
23                         <li>姓名:<input type="text" [ng-form-control]="name"></li>
24                         <li>地址:<input type="text" [ng-form-control]="address"></li>
25                         <li>电话:<input type="text" [ng-form-control]="telephone"></li>
26                     </ul>
27                 </div>
28                 <!--调试:转储模型信息-->
29                 <pre>{{dump()}}</pre>
30             `,
31             styles:[`
32                 form{background:#e1f5fe;}
33                 ul{list-style:none;padding:10px;margin:0px;}
34                 li{line-height:30px;}
35             `]
36         })
37         class EzApp{
38             constructor(){
39                 //创建控件对象
40                 this.name = new Control("Jason");
41                 this.address = new Control("London U.K.");
42                 this.telephone = new Control("114");
43             }
44             dump(){
45                 //读取控件对象的值
46                 var val = {
47                     name : this.name.value,
48                     address : this.address.value,
49                     telephone : this.telephone.value
50                 }
51                 return JSON.stringify(val,null,"\t");
52             }
53         }
54         bootstrap(EzApp);
55     </script>
56 </body>
57 </html>

输出结果:

时间: 2024-08-12 22:03:11

Angular2组件开发—表单输入(四)的相关文章

Angular2组件开发—表单输入(五)

NgFormModel - 绑定已有控件组 NgFormModel指令类似于NgControlGroup指令,都是为控件提供容器.但区别在于,NgFormModel指令将已有的控件组绑定到DOM对象上: 1 @View({ 2 template : ` 3 <!--绑定控件组与控件对象--> 4 <div [ng-form-model]="controls"> 5 <input type="text" ng-control="

Angular2组件开发—表单输入(三)

NgControlGroup - 命名控件组 NgControlGroup指令的选择符是[ng-control-group],如果模板中的某个元素具有这个属性, Angular2框架将自动创建一个控件组对象,并将这个对象以指定的名称与DOM对象绑定. 控件组可以嵌套,方便我们在语义上区分不同性质的输入: 和NgControlName指令一样,NgControlGroup指令也必须作为NgForm或NgFormModel的 后代使用,因为这个指令需要将创建的控件组对象添加到祖先(NgForm或Ng

Vue基础篇--7表单输入绑定input

Vue基础篇--7表单输入绑定input 1.基础语法 你可以用 v-model 指令在表单 . 及 `元素上创建双向数据绑定.它会根据控件类型自动选取正确的方法来更新元素.尽管有些神奇,但v-model` 本质上不过是语法糖.它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理. 注意: v-model 会忽略所有表单元素的 value.checked.selected 特性的初始值而总是将 Vue 实例的数据作为数据来源.你应该通过 JavaScript 在组件的 data

使用文档对象在页面上创建学生信息表。 信息表包括学号、姓名、性别、电子邮件、联系电话、个人主页和联系地址, 信息表内容通过表单输入,提交前先使用正则表达式进行验证,联系地址不能超过20个字符, 每输入一名学生的信息,提交后,表格增加一行,表格不能被选择、复制。

<!DOCTYPE html><html>    <head>        <meta charset="UTF-8">        <title></title>    </head>    <!--        描述:使用文档对象在页面上创建学生信息表.        信息表包括学号.姓名.性别.电子邮件.联系电话.个人主页和联系地址,        信息表内容通过表单输入,提交前先使用

纯CSS3实现的表单输入高亮效果

<!DOCTYPE html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>纯CSS3实现的联系人表单输入效果</title><!-- Import Google Font - Yanone Kaffeesatz --> <link href='http://fonts.g

Xceed WPF表单输入控件Xceed Editors for WPF 免费下载及介绍

Xceed Editors for WPF 是一款包含12种功能强大的WPF编辑控件,用户输入控件,每个控件都具有多种风格主题,包含:日期选择控件.复选框.改进的TextBox.数字输入框.值范围输入框等. 具体功能: DatePicker/Calendar:日期选择控件 MaskedTextBox:为输入文本指定一种标记格式 CheckBox:提供了多种风格的复选框,不像传统的WPF复选框 AutoSelectTextBox:当控件具有焦点时内容被选择 ValueRangeTextBox:添加

jQuery表单输入文字统计字数插件

这是一款非常实用的jQuery表单输入文字计数插件.该插件可以设置某个输入框或textarea可输入的最大文字数,当用户输入文字的时候,插件会将字数倒计数显示,提示用户还可以输入多少个文字,并且显示的数字随着数字的减少会越来越清晰. 效果演示:http://www.htmleaf.com/Demo/201503281587.html 下载地址:http://www.htmleaf.com/jQuery/Form/201503281586.html

AngulairJS表单输入验证与mvc

AngulairJS表单输入验证 1.表单中,常用的验证操作有:$dirty 表单有填写记录.$valid 字段内容合法的.$invalid 字段内容是非法的.$pristine 表单没有填写记录.$error    表单验证不通过的错误验证信息. 2.验证时,需给表单及需要验证的input设置name属性 给form和input设置name后,会将form表单信息,默认绑定到$scope作用域中.故,可以使用formName.inputname.$验证操作得到验证结果 例如:formName.

jquary 表单输入内容 表格接收 分页符

表格的悬浮换色  点击换色  隔行换色 $("tr:even").addClass("gaoliang"); $("tr").mouseover(function(){ $(this).addClass("xf");    }).mouseout(function(){     $(this).removeClass("xf");    }).click(function(){     $(this).ad