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

NgControlGroup - 命名控件组

NgControlGroup指令的选择符是[ng-control-group],如果模板中的某个元素具有这个属性, Angular2框架将自动创建一个控件组对象,并将这个对象以指定的名称与DOM对象绑定。

控件组可以嵌套,方便我们在语义上区分不同性质的输入:

和NgControlName指令一样,NgControlGroup指令也必须作为NgForm或NgFormModel的 后代使用,因为这个指令需要将创建的控件组对象添加到祖先(NgForm或NgFormModel)所创建 的控件组中。

例如:

 1 <!doctype html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title>NgControlGroup</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,NgIf} from "angular2/angular2";
14         import {formDirectives} from "angular2/forms";
15
16         @Component({selector:"ez-app"})
17         @View({
18             directives:[NgIf,formDirectives],
19             template:`
20                 <form #f="form">
21                     <div>基本信息</div>
22                     <!--声明控件组-->
23                     <ul ng-control-group="basic">
24                         <li>姓名:<input type="text" ng-control="name"></li>
25                         <li>地址:<input type="text" ng-control="address"></li>
26                         <li>电话:<input type="text" ng-control="telephone"></li>
27                     </ul>
28                     <div>专业技能</div>
29                     <!--声明控件组-->
30                     <ul ng-control-group="expertise">
31                         <li>英语:<input type="checkbox" ng-control="english"></li>
32                         <li>科技:<input type="checkbox" ng-control="tech"></li>
33                         <li>运动:<input type="checkbox" ng-control="sport"></li>
34                     </ul>
35                     <div>爱好</div>
36                      <!--声明控件组-->
37                      <ul ng-control-group="like">
38                         <li>英语:<input type="checkbox" ng-control="english"></li>
39                         <li>科技:<input type="checkbox" ng-control="tech"></li>
40                         <li>运动:<input type="checkbox" ng-control="sport"></li>
41                     </ul>
42                 </form>
43                 <!--调试:实时转储模型的值-->
44                 <pre>{{decode(f.value)}}</pre>
45             `,
46             styles:[`
47                 div{padding:5px;background:#b3e5fc;color:red;}
48                 form{background:#e1f5fe;}
49                 ul{list-style:none;padding:5px;margin:0px;}
50                 li{line-height:30px;}
51             `]
52         })
53         class EzApp{
54             decode(val){
55                 return JSON.stringify(val,"\t");
56             }
57         }
58         bootstrap(EzApp);
59     </script>
60 </body>
61 </html>

结果如下:

时间: 2025-01-07 00:34:01

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

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

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

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

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

Angular2组件开发—调用服务(三)

注入一个复杂的服务 EzAlgo相当简单,使用new或者使用Injector来获得一个实例看起来差别不大.那如果我们的EzApp组件要使用Http服务呢? 第一眼看上去,Http服务显然是一个真正有用的服务 - 因为看起来相当的复杂 - Http依赖于XHRBackend和BaseRequestOptions,而XHRBackend又依赖于BrowserXHR. 我们可以有两种方法获得一个Http的实例,以便通过它获得网络访问的功能: 1. 使用new进行实例化 如果我们使用传统的new方式创建

表单(三)联动总结

任务目的 加强对JavaScript的掌握 熟悉常用表单处理逻辑 任务描述 如示例图中所示,在页面中完成两个单选框,切换单选框的不同选项时下方显示的表单随之切换. 当选择在校生时,出现两个select下拉菜单,一个选择城市,一个选择学校,当选择非在校生时,出一个文本输入框 学校下拉菜单里的学校名单均为城市下拉菜单中所选的城市中的大学,当城市发生变化时,学校一起发生变化 城市及学校的数据随意编造即可,无需真实完整 任务注意事项 要求功能实现与任务描述中完全一致 示例图仅为参考,样式不需要完全实现一

js日期/时间比较函数,以及js校验表单后提交表单的三种方法,表单验证,以及三种结合

<pre class="html" name="code"> js日期比较(yyyy-mm-dd) function duibi(a, b) { var arr = a.split("-"); var starttime = new Date(arr[0], arr[1], arr[2]); var starttimes = starttime.getTime(); var arrs = b.split("-");

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:添加