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