最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Angular 表單控件示例代碼

 更新時(shí)間:2017年06月26日 09:56:12   作者:semlinker  
本文的主要是演示 Template-driven 中,一些常用控件的使用方式,僅供參考。具體請根據(jù)實(shí)際業(yè)務(wù)需求做相應(yīng)調(diào)整。

本文將介紹 Angular Template-driven 表單中,常用控件的使用。涉及的表單控件如下:

  1. text
  2. number
  3. radio
  4. select (基本類型)
  5. select (對象)
  6. multi select
  7. cascading select (級聯(lián)操作)
  8. checkbox (boolean)
  9. multi checkbox

表單的局部效果

數(shù)據(jù)接口

export interface User {
 name: string; // 名字
 age?: number; // 年齡
 gender?: string; // 性別
 role?: string; // 角色
 theme?: Theme; // 主題
 isActive?: boolean; // 是否激活
 hobbies?: {[key: string]: boolean}; // 愛好
 topics?: string[]; // 話題
 province: number; // 省
 city: number; // 市
}

export interface Theme {
 display: string; // 顯示文本
 backgroundColor: string; // 背景顏色
 fontColor: string; // 字體顏色
}

控件使用示例

Text

<div class="form-group">
  <label>名字</label>
  <input type="text" class="form-control" name="name" [(ngModel)]="user.name">
</div>

Number

<div class="form-group">
  <label>年齡</label>
  <input type="number" class="form-control" name="age" [(ngModel)]="user.age">
</div>

Radio

數(shù)據(jù)

genders = [{ value: 'F', display: '女' },{ value: 'M', display: '男' }];

模板

<div class="form-group">
  <label>性別</label>
   <label *ngFor="let gender of genders;">
   <input type="radio" name="gender" [(ngModel)]="user.gender" 
     [value]="gender.value">
      {{gender.display}}
 </label>
</div>

Select - 基本類型

數(shù)據(jù)

復(fù)制代碼 代碼如下:

roles = [{ value: 'admin', display: '管理員' },{ value: 'user', display: '普通用戶' }];

模板

<div class="form-group">
 <label>角色</label>
 <select name="role" class="form-control" [(ngModel)]="user.role">
   <option *ngFor="let role of roles" [value]="role.value">
    {{role.display}}
  </option>
 </select>
</div>

Select - 對象

數(shù)據(jù)

themes: Theme[] = [
 { backgroundColor: 'black', fontColor: 'white', display: '黑色' },
 { backgroundColor: 'white', fontColor: 'black', display: '白色' },
 { backgroundColor: 'grey', fontColor: 'white', display: '灰色' }
];

模板

<div class="form-group">
 <label>主題</label>
 <select name="theme" class="form-control" [(ngModel)]="user.theme">
   <option *ngFor="let theme of themes" [ngValue]="theme">
     {{theme.display}}
   </option>
  </select>
</div>

Mulit Select

數(shù)據(jù)

topics = [
 { value: 'game', display: '游戲' },
 { value: 'tech', display: '科技' },
 { value: 'life', display: '生活' }
];

模板

<div class="form-group">
  <label>話題</label>
  <select multiple name="topics" class="form-control" [(ngModel)]="user.topics">
   <option *ngFor="let topic of topics" [value]="topic.value">
     {{topic.display}}
   </option>
  </select>
</div>

Cascading Select - 級聯(lián)操作

數(shù)據(jù)

provinces = [
  {pk:1,pv:'北京'},
  {pk:16,pv:'福建'}
 ];

citieData = [
  {pk:1,ck:72,cv:'朝陽區(qū)'},{pk:1,ck:2800,cv:'海淀區(qū)'},
  {pk:1,ck:2801,cv:'西城區(qū)'},{pk: 16,ck: 1303,cv: '福州市'}, 
  {pk: 16,ck: 1315,cv: '廈門市'},{pk: 16,ck: 1332,cv: '泉州市'}
];

cities = this.citieData.filter(city => city.pk === 16); // 默認(rèn)福建省

模板

<div class="form-group">
  <label>地址</label>
  <select name="province" class="form-control" [(ngModel)]="user.province" 
   (change)="changeProvince($event.target.value)">
     <option *ngFor="let province of provinces" [value]="province.pk">
       {{province.pv}}
     </option>
  </select>
  <select name="city" class="form-control" [(ngModel)]="user.city">
    <option *ngFor="let city of cities" [value]="city.ck">
     {{city.cv}}
    </option>
  </select>
</div>

Checkbox

模板

<div class="form-group">
  <div class="checkbox">
   <label>
    <input type="checkbox" name="isActive" [(ngModel)]="user.isActive">
      是否激活
   </label>
  </div>
</div>

Multi Checkbox

數(shù)據(jù)

hobbies = [
 { value: 'reading', display: '看書' },
 { value: 'music', display: '聽歌' },
 { value: 'movie', display: '電影' }
];

模板

<div class="form-group">
  <label>愛好</label>
  <span *ngFor="let hobby of hobbies">
    <input type="checkbox" name="bobby" [value]="hobby.value" 
     [checked]="user.hobbies[hobby.value]"
     (change)="changeHobby(hobby, $event)" />
       {{hobby.display}}
  </span>
</div>

完整示例

模板

<h4>{{title}}</h4>
<form #f="ngForm" novalidate>
   <div class="form-group">
    <label>名字</label>
    <input type="text" class="form-control" name="name" [(ngModel)]="user.name">
   </div>
   <div class="form-group">
    <label>年齡</label>
    <input type="number" class="form-control" name="age" [(ngModel)]="user.age">
   </div>
   <div class="form-group">
    <label>性別</label>
    <label *ngFor="let gender of genders;">
     <input type="radio" name="gender" [(ngModel)]="user.gender" 
      [value]="gender.value">
      {{gender.display}}
    </label>
   </div>
   <div class="form-group">
    <label>角色</label>
    <select name="role" class="form-control" [(ngModel)]="user.role">
     <option *ngFor="let role of roles" [value]="role.value">
      {{role.display}}</option>
    </select>
   </div>
   <div class="form-group">
    <label>主題</label>
    <select name="theme" class="form-control" [(ngModel)]="user.theme">
     <option *ngFor="let theme of themes" [ngValue]="theme">
      {{theme.display}}
     </option>
    </select>
   </div>
   <div class="form-group">
    <div class="checkbox">
     <label>
      <input type="checkbox" name="isActive" [(ngModel)]="user.isActive">
      是否激活
     </label>
    </div>
   </div>
   <div class="form-group">
    <label>話題</label>
    <select multiple name="topics" class="form-control" [(ngModel)]="user.topics">
     <option *ngFor="let topic of topics" [value]="topic.value">
      {{topic.display}}
     </option>
    </select>
   </div>
   <div class="form-group">
    <label>愛好</label>
    <span *ngFor="let hobby of hobbies">
      <input type="checkbox" name="bobby" [value]="hobby.value" 
          [checked]="user.hobbies[hobby.value]"
       (change)="changeHobby(hobby, $event)" />
      {{hobby.display}}
    </span>
   </div>
   <div class="form-group">
    <label>地址</label>
    <select name="province" class="form-control" [(ngModel)]="user.province" 
     (change)="changeProvince($event.target.value)">
     <option *ngFor="let province of provinces" [value]="province.pk">
      {{province.pv}}
     </option>
    </select>
    <select name="city" class="form-control" [(ngModel)]="user.city">
     <option *ngFor="let city of cities" [value]="city.ck">{{city.cv}}</option>
    </select>
   </div>
   <button type="submit" (click)="save()" class="btn btn-default">保存</button>
</form>

組件類

export class AppComponent implements OnInit {
 title = '新增用戶';
 user: User;

 genders = [{ value: 'F', display: '女' },{ value: 'M', display: '男' }];

 roles = [{ value: 'admin', display: '管理員' },{ value: 'user', display: '普通用戶' }];

 themes: Theme[] = [
  { backgroundColor: 'black', fontColor: 'white', display: '黑色' },
  { backgroundColor: 'white', fontColor: 'black', display: '白色' },
  { backgroundColor: 'grey', fontColor: 'white', display: '灰色' }
 ];

 topics = [
  { value: 'game', display: '游戲' },
  { value: 'tech', display: '科技' },
  { value: 'life', display: '生活' }
 ];

 hobbies = [
  { value: 'reading', display: '看書' },
  { value: 'music', display: '聽歌' },
  { value: 'movie', display: '電影' }
 ];

 provinces = [
  {pk:1,pv:'北京'},
  {pk:16,pv:'福建'}
 ];

 citieData = [
  {pk:1,ck:72,cv:'朝陽區(qū)'},{pk:1,ck:2800,cv:'海淀區(qū)'},
  {pk:1,ck:2801,cv:'西城區(qū)'},{pk: 16,ck: 1303,cv: '福州市'}, 
  {pk: 16,ck: 1315,cv: '廈門市'},{pk: 16,ck: 1332,cv: '泉州市'}
 ];

 cities = this.citieData.filter(city => city.pk === 16);

 changeHobby(hobby, event) {
  this.user.hobbies[hobby.value] = event.target.checked;
 }

 changeProvince(pk) {
  this.cities = this.citieData.filter((city)=> city.pk == pk);
  this.user.city = this.cities[0].ck;
 }

 ngOnInit(): void {
  this.user = {
   name: '',
   gender: this.genders[0].value,
   role: this.roles[1].value,
   theme: this.themes[0],
   isActive: false,
   hobbies: {'music': true},
   topics: [this.topics[1].value],
   province: 16, // 福建省
   city: 1315 // 廈門市
  }
 }

  save() {
  console.log(this.user);
 }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • AngularJS bootstrap啟動詳解及實(shí)例代碼

    AngularJS bootstrap啟動詳解及實(shí)例代碼

    這篇文章主要介紹了AngularJS bootstrap啟動的知識,這里整理了相關(guān)資料及簡單實(shí)例代碼,,需要的朋友可以參考下
    2016-09-09
  • 使用AngularJS制作一個(gè)簡單的RSS閱讀器的教程

    使用AngularJS制作一個(gè)簡單的RSS閱讀器的教程

    這篇文章主要介紹了使用Angular.js制作一個(gè)簡單的RSS閱讀器的教程,AngularJS是一個(gè)非常有人氣的JavaScript庫,文中介紹的制作方法主要使用到了FreedReadR模版,需要的朋友可以參考下
    2015-06-06
  • AngularJs 指令詳解及示例代碼

    AngularJs 指令詳解及示例代碼

    本文主要介紹AngularJs 指令的知識,這里整理了詳細(xì)的資料和簡單示例代碼幫助大家學(xué)習(xí)理解應(yīng)用,有興趣的小伙伴可以參考下
    2016-09-09
  • Angular4 中常用的指令入門總結(jié)

    Angular4 中常用的指令入門總結(jié)

    這篇文章主要給大家總結(jié)了一些關(guān)于Angular4 中入門常用的指令,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-06-06
  • 使用angularjs.foreach時(shí)return的問題解決

    使用angularjs.foreach時(shí)return的問題解決

    這篇文章主要介紹了使用angularjs.foreach時(shí)return的問題解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • 初學(xué)者AngularJS的環(huán)境搭建過程

    初學(xué)者AngularJS的環(huán)境搭建過程

    這篇文章主要介紹了初學(xué)者AngularJS的環(huán)境搭建過程,在文章給大家提到了Angular-cli的特性,大家一起看看吧
    2017-10-10
  • AngularJS 中使用Swiper制作滾動圖不能滑動的解決方法

    AngularJS 中使用Swiper制作滾動圖不能滑動的解決方法

    Swiper是目前較為流行的移動端觸摸滑動插件,因?yàn)槠浜唵魏糜靡咨鲜?,受到很多前端開發(fā)者的歡迎。這篇文章主要介紹了AngularJS 中使用Swiper制作滾動圖不能滑動的解決方法,需要的朋友可以參考下
    2016-11-11
  • AngularJS基礎(chǔ) ng-selected 指令簡單示例

    AngularJS基礎(chǔ) ng-selected 指令簡單示例

    本文主要介紹AngularJS ng-selected 指令,這里對ng-selected 指令的基礎(chǔ)資料做了詳細(xì)介紹,并附有示例代碼,有需要的小伙伴可以參考下
    2016-08-08
  • AngularJS與后端php的數(shù)據(jù)交互方法

    AngularJS與后端php的數(shù)據(jù)交互方法

    今天小編就為大家分享一篇AngularJS與后端php的數(shù)據(jù)交互方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Angularjs按需查詢實(shí)例代碼

    Angularjs按需查詢實(shí)例代碼

    這篇文章主要介紹了Angularjs按需查詢實(shí)例代碼,需要的朋友可以參考下
    2017-10-10

最新評論

全州县| 浮山县| 桂林市| 新密市| 嵩明县| 龙岩市| 类乌齐县| 绿春县| 隆林| 施甸县| 安西县| 吴江市| 手游| 宁晋县| 韩城市| 汕尾市| 清徐县| 大安市| 贵定县| 白朗县| 阿巴嘎旗| 南靖县| 银川市| 攀枝花市| 南安市| 如东县| 南溪县| 旺苍县| 西乌珠穆沁旗| 皋兰县| 即墨市| 镇宁| 汉川市| 江华| 靖州| 巴林右旗| 平山县| 锡林郭勒盟| 新巴尔虎右旗| 韶山市| 江门市|