Angular自定義組件實(shí)現(xiàn)數(shù)據(jù)雙向數(shù)據(jù)綁定的實(shí)例
學(xué)過(guò)Angular的同學(xué)都知道,輸入框通過(guò)[(ngModel)]實(shí)現(xiàn)雙向數(shù)據(jù)綁定,那么自定義組件能不能實(shí)現(xiàn)雙向數(shù)據(jù)綁定呢?答案是肯定的。
Angular中,我們常常需要通過(guò)方括號(hào)[]和圓括號(hào)()實(shí)現(xiàn)組件間的交互:

那么在[]和()的基礎(chǔ)上,如何實(shí)現(xiàn)組件的雙向數(shù)據(jù)綁定?
例子如下。
子組件:
<!--testDataBinding.component.html-->
<h1>childStatus: {{childStatus}}</h1>
//testDataBinding.component.ts
export class TestDataBindingComponent implements OnInit{
@Input() childStatus;
@Output() childStatusChange = new EventEmitter();
ngOnInit(){
setTimeout(()=>{
this.childStatus = false;
this.childStatusChange.emit(this.childStatus);
},5000);
}
}
注意這里的寫(xiě)法,這是關(guān)鍵所在,輸出屬性前半部分必須與輸入屬性相同,輸入屬性可以隨意取名,輸出屬性需在輸入屬性基礎(chǔ)上加上Change,比如你的輸入屬性是myData,那么輸出屬性就必須是myDataChange。
父組件:
<!--app.component.html-->
<test-binding [(childStatus)]="parentStatus"></test-binding>
<h1>parentStatus: {{parentStatus}}</h1>
//app.component.ts
import { Component,OnInit } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit{
parentStatus: boolean = true;
ngOnInit(){
setTimeout(()=>{
this.parentStatus = true;
},10000);
}
}
在父組件我們初始化parentStatus為true,并把它傳到子組件TestDataBindingComponent。
在子組件里,5秒后我們把childStatus設(shè)為false,看它能不能傳到父組件。再過(guò)5秒,我們?cè)诟附M件將parentStatus設(shè)為true,看它能不能傳到子組件。

事實(shí)證明,子組件值變化后,父組件的值也跟著變化;父組件值變化后子組件的值也跟著變了!
我們實(shí)現(xiàn)了雙向綁定!
查看本文代碼和效果,可點(diǎn)擊這里。
以上這篇Angular自定義組件實(shí)現(xiàn)數(shù)據(jù)雙向數(shù)據(jù)綁定的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
舉例詳解AngularJS中ngShow和ngHide的使用方法
這篇文章主要介紹了舉例詳解AngularJS中ngShow和ngHide的使用方法,AngularJS是一款非常熱門(mén)的JavaScript框架,需要的朋友可以參考下2015-06-06
Angular實(shí)現(xiàn)類似博客評(píng)論的遞歸顯示及獲取回復(fù)評(píng)論的數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于Angular如何實(shí)現(xiàn)類似博客評(píng)論的遞歸顯示及獲取回復(fù)評(píng)論的數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
AngularJs學(xué)習(xí)第八篇 過(guò)濾器filter創(chuàng)建
這篇文章主要介紹了AngularJs學(xué)習(xí)第八篇 過(guò)濾器filter創(chuàng)建的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
后端接收不到AngularJs中$http.post發(fā)送的數(shù)據(jù)原因分析及解決辦法
這篇文章主要介紹了后端接收不到AngularJs中$http.post發(fā)送的數(shù)據(jù)原因分析及解決辦法的相關(guān)資料,需要的朋友可以參考下2016-07-07
Angular 理解module和injector,即依賴注入
本文主要介紹Angular 理解module和injector的知識(shí),這里整理了相關(guān)知識(shí),并詳細(xì)介紹了依賴注入的問(wèn)題,有興趣的小伙伴可以參考下2016-09-09
Angular實(shí)現(xiàn)點(diǎn)擊按鈕控制隱藏和顯示功能示例
這篇文章主要介紹了Angular實(shí)現(xiàn)點(diǎn)擊按鈕控制隱藏和顯示功能,結(jié)合實(shí)例形式分析了AngularJS簡(jiǎn)單控制頁(yè)面元素顯示與隱藏的相關(guān)操作技巧,需要的朋友可以參考下2017-12-12
AngularJS實(shí)現(xiàn)的根據(jù)數(shù)量與單價(jià)計(jì)算總價(jià)功能示例
這篇文章主要介紹了AngularJS實(shí)現(xiàn)的根據(jù)數(shù)量與單價(jià)計(jì)算總價(jià)功能,涉及AngularJS事件響應(yīng)與數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-12-12
Angular 4依賴注入學(xué)習(xí)教程之Injectable裝飾器(六)
這篇文章主要給大家介紹了關(guān)于Angular 4依賴注入之Injectable裝飾器的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。2017-06-06

