• 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/system@0.16.11.js"></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,"	");
    62             }
    63         }        
    64         bootstrap(EzApp);
    65     </script>
    66 </body>
    67 </html>

    输入结果:

  • 相关阅读:
    android音乐播放器开发 SweetMusicPlayer 摇一摇换歌
    kernel logo到开机动画之间闪现黑屏(android 5.X)
    [DLX反复覆盖] hdu 3656 Fire station
    使用清华源 tensorflow 安装
    类别不平衡问题之SMOTE算法(Python imblearn极简实现)
    在Ubuntu 18.04上安装OpenCV 4(C ++和Python)
    OpenCV
    git clone速度太慢的解决办法
    OpenCV 3.4.2 环境搭建(适用于Ubuntu 一键安装)
    ubuntu16.04安装opencv3.4.1教程
  • 原文地址:https://www.cnblogs.com/gett/p/5051833.html
Copyright © 2020-2023  润新知