精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

Angular10中雙向綁定的示例分析

這篇文章主要介紹了Angular10中雙向綁定的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:申請域名、雅安服務器托管、營銷軟件、網站建設、張家川回族自治網站維護、網站推廣。

將利用@Input()@Output()來了解下雙向綁定。

定義:雙向綁定為應用中的組件提供了一種共享數據的方式。使用雙向綁定綁定來偵聽事件并在父組件和子組件之間同步更新值。(其實,也就是對@Input()@Output()的一種簡化)

雙向綁定大致可以分成兩種類型:

一、普通組件的雙向綁定

這個類型的雙向綁定可以發生在任何組件任何DOM元素上,下面我們通過一個實例來具體認識一下。

src/app/components/下面創建一個sizer組件作為子組件:

// src/app/components/sizer/sizer.component.html
  -   +   FontSize: {{size}}px
// src/app/components/sizer/sizer.component.ts ... export class SizerComponent implements OnInit {   public size = 14;   // ...   dec() {     this.size++;   }   inc() {     this.size--;   } }

但是,這并不是我們想要的結果,我們需要從父組件傳入size,從而讓sizer組件改變字體大小。并且,通過sizer組件的按鈕點擊事件,將改變后的size的值回傳給父組件。

接下來我們將使用前面的知識來改造代碼(也就是雙向綁定的原理介紹):

// src/app/app.component.html
// 下面的$event就是子組件傳過來的值(必須是$event)

子組件修改后的FontSize: {{appFontSize}}
// src/app/app.component.ts ... export class AppComponent {   appFontSize = 14; }
// src/app/components/sizer/sizer.component.ts
...
export class SizerComponent implements OnInit {
  // 創建輸入屬性size,為number或字符串類型
  @Input() size: number | string;
  // 創建自定義事件onSizeChange,需要一個number類型的參數
  @Output() onSizeChange = new EventEmitter();
  ....
  dec() {
    this.resize(-1);
  }
  inc() {
    this.resize(1);
  }
  resize(step: number) {
    // 設置字體大小為12~40之間的值
    this.size = Math.min(40, Math.max(12, +this.size + step));
    // 通過事件傳值
    this.onSizeChange.emit(this.size);
  }
}

同樣實現了我們想要的效果:

Angular10中雙向綁定的示例分析
但是,這樣是不是太麻煩了一點呢?下面,我們的雙向綁定正式出場:

Angular 的雙向綁定語法是方括號和圓括號的組合 [()][] 進行屬性綁定,() 進行事件綁定。修改下面代碼:

// src/app/app.component.html

子組件修改后的FontSize: {{appFontSize}}
// src/app/components/sizer/sizer.component.ts
...
export class SizerComponent implements OnInit {
  @Input() size: number | string;
  // 修改事件名,********必須是:屬性名 + Change 形式*********
  @Output() sizeChange = new EventEmitter();
  ....
  resize(step: number) {
    this.size = Math.min(40, Math.max(12, +this.size + step));
    this.sizeChange.emit(this.size);
  }
}

會發現,功能沒有受影響。

二、表單中的雙向綁定[(ngModel)]

根據之前基本的雙向綁定知識,[(ngModel)]語法可拆解為:

1.名為ngModel的輸入屬性

2.名為ngModelChange的輸出屬性

單獨使用表單元素

首先需要引入FormsModule這個內置模塊:

// src/app/app.module.ts 
import {FormsModule} from '@angular/forms';
...
@NgModule({
  // ...
  imports: [
    // ...
    FormsModule
  ],
  // ...
})

組件中使用:



input value is {{iptVal}}

上面這行代碼相當于:

這其實很簡單的,類似vue里面的寫法。

在標簽中使用

將代碼放入

標簽內:



  
  

form 中input value is {{iptVal2}}

但是,我們會發現瀏覽器會報錯:

Angular10中雙向綁定的示例分析
報錯意思說,在form表單中使用ngModel的話,我們需要給input添加一個name屬性或者設置[ngModelOptions]="{standalone: true}"

修改代碼:


     

form 中input value is {{iptVal2}}

或者:


     

form 中input value is {{iptVal2}}

或者:


     

form 中input value is {{iptVal2}}

在表單元素 中使用雙向綁定就是這么簡單了,注意引入FormsModule模塊就行。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Angular10中雙向綁定的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創新互聯,關注創新互聯行業資訊頻道,更多相關知識等著你來學習!


當前文章:Angular10中雙向綁定的示例分析
本文URL:http://m.jcarcd.cn/article/jieecc.html

其他資訊

主站蜘蛛池模板: 国产婷婷综合在 | 喷在线播放 | www亚洲| 九九九九九九伊人 | 国产精品毛多多水多 | 国产韩国欧美在线 | 韩国三级hd中文 | 国产精品欧美激情 | 午夜视频免费观看 | 精品日韩产品 | 中文字幕无吗热视频 | 中文字幕一区二区三 | 国产精品一区二区五 | 日本成人午夜 | 99精品国产自产 | 午夜亚洲一区二区福 | 国产白丝一区二区 | 国产午夜在线视频 | 91精品国产自产 | 潘甜甜国产福 | 国产精品美女在线 | 精品国产不卡女 | 国产又色又爽又 | 欧美一级日韩国产 | 老司机午夜精 | 日本高清色频 | 精品偷拍视频一区 | 乱伦免费国产精品 | 国产午夜福利91 | 精品国产日韩无影视 | 国产欧洲野花a级 | 日本三级免费网站 | 成人黄污爽爽在线 | 日本欧美高清全视频 | 国产激情精品一 | 日韩18精品亚洲 | 精品熟女碰 | 91丝袜在线观看 | 国产亚洲人成a | 国产精品玩偶在线 | 国语对白露脸 |