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

NgFormModel - 绑定已有控件组

NgFormModel指令类似于NgControlGroup指令,都是为控件提供容器。但区别在于,NgFormModel指令将已有的控件组绑定到DOM对象上:

 1 @View({
 2     template : `
 3         <!--绑定控件组与控件对象-->
 4         <div [ng-form-model]="controls">
 5             <input type="text" ng-control="name">
 6             <input type="text" ng-control="age">
 7         </div>`
 8 })
 9 class EzComp{
10     constructor(){
11         //创建控件组及控件对象
12         this.controls = new ControlGroup({
13             name :new Control("Jason"),
14             age : new Control("45")
15         });
16     }
17 }

NgFormModel指令可以包含NgControlGroup指令,以便将不同性质的输入分组。

例如:

 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 {Inject,Component,View,bootstrap} from "angular2/angular2";
14         import {Control,ControlGroup,formDirectives} from "angular2/forms";
15
16         @Component({selector:"ez-app"})
17         @View({
18             directives:[formDirectives],
19             template:`
20                 <div [ng-form-model]="controls">
21                     <ul>
22                         <li>姓名:<input type="text" ng-control="name"></li>
23                         <li>地址:<input type="text" ng-control="address"></li>
24                         <li>电话:<input type="text" ng-control="telephone"></li>
25                     </ul>
26                 </div>
27                 <div [ng-form-model]="controls1">
28                     <ul>
29                         <li>姓名1:<input type="text" ng-control="name1"></li>
30                         <li>地址1:<input type="text" ng-control="address1"></li>
31                         <li>电话1:<input type="text" ng-control="telephone1"></li>
32                     </ul>
33                 </div>
34                 <pre>{{dump()}}</pre>
35             `,
36             styles:[`
37                 div{background:#e1f5fe;}
38                 ul{list-style:none;padding:10px;margin:0px;}
39                 li{line-height:30px;}
40             `]
41         })
42         class EzApp{
43             constructor(){
44                 this.controls = new ControlGroup({
45                     name : new Control("Jason"),
46                     address : new Control("London U.K."),
47                     telephone : new Control("114")
48                 });
49                 this.controls1 = new ControlGroup({
50                     name1 : new Control("Jason1"),
51                     address1 : new Control("London U.K.1"),
52                     telephone1 : new Control("1141")
53                 });
54             }
55             dump(){
56             var ddd=
57             {
58             a: this.controls.value,
59             b: this.controls1.value
60             }
61                 return JSON.stringify(ddd,null,"\t");
62             }
63         }
64         bootstrap(EzApp);
65     </script>
66 </body>
67 </html>

输入结果:

时间: 2024-11-07 03:41:55

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

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

NgFormControl - 绑定已有控件对象 与NgControlName指令不同,NgFormControl将已有的控件/Control对象绑定到DOM元素 上.当需要对输入的值进行初始化时,可以使用NgFormControl指令. 下面的代码中,使用NgFormControl指令将DOM元素绑定到组件EzComp的成员 变量movie上,我们需要在构造函数中先创建这个Control对象: 1 @View({ 2 //将输入元素绑定到已经创建的控件对象上 3 template : `<in

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

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

Angular2组件开发—模板语法(五)

(event) - 监听事件 在模板中为元素添加事件监听很简单,使用一对小括号包裹事件名称,并绑定 到表达式即可: 上面的代码实例为DOM对象h1的click事件添加监听函数onClick(). 另一种等效的书写方法是在事件名称前加on-前缀: 1 @View({template : `<h1 on-click="onClick()">HELLO</h1>`}) 例如: 1 <!doctype html> 2 <html> 3 <h

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.