国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Angular 2父子組件數(shù)據(jù)傳遞之@ViewChild獲取子組件詳解

2019-11-19 16:10:52
字體:
供稿:網(wǎng)友

前言

之前在《Angular 2父子組件數(shù)據(jù)傳遞之局部變量獲取子組件其他成員》講到過(如果有不懂的,可以先去看看),通過在子組件模版上設(shè)置局部變量的方式獲取子組件的成員變量,但是有一個(gè)限制,必須在父組件的模版中設(shè)置局部變量才能夠獲取到子組件成員。那有沒有辦法實(shí)現(xiàn)不依賴于局部變量獲取子組件成員呢? 答案:肯定是有的,接下來我們講下通過@ViewChild來實(shí)現(xiàn)!

淡描@ViewChild

@ViewChild的作用是聲明對(duì)子組件元素的實(shí)例引用,意思是通過注入的方式將子組件注入到@ViewChild容器中,你可以想象成依賴注入的方式注入,只不過@ViewChild不能在構(gòu)造器constructor中注入,因?yàn)锧ViewChild會(huì)在ngAfterViewInit()回調(diào)函數(shù)之前執(zhí)行。

@VIewChild提供了一個(gè)參數(shù)來選擇將要引入的組件元素,可以是一個(gè)子組件實(shí)例引用, 也可以是一個(gè)字符串(兩者的區(qū)別,后面會(huì)講)


下面我們來介紹一下兩種用法。

1、當(dāng)傳入的是一個(gè)子組件實(shí)例引用

childenConponetn.ts


1、定義了一個(gè)類方法fun1() ,提供給父組件調(diào)用

parentComponent.ts


1、這里傳入一個(gè)子組件實(shí)例引入,定義了一個(gè)變量child接收

2、定義了Onclick()方法,用于頁面觸發(fā)點(diǎn)擊事件,模擬調(diào)用子組件中的方法

parentComponetn.html


1、父組件模版中input綁定了一個(gè)click點(diǎn)擊事件,頁面觸發(fā)點(diǎn)擊調(diào)用OnClick()方法

最終效果如下:

2、當(dāng)傳入的是一個(gè)字符串

parentComponent.ts


1、@ViewChild傳入一個(gè)字符串myChild,變量child接收。其它不變

parentComponent.html


1、細(xì)心的你會(huì)發(fā)現(xiàn)這里在子組件模版中創(chuàng)建了一個(gè)局部變量#myChild,父組件中的myChild字符串解釋為一個(gè)選擇器。也就是一個(gè)元素包含模版局部變量#myChild,這就是與第一種方式唯一不同的地方,這里彌補(bǔ)了《Angular 2父子組件數(shù)據(jù)傳遞之局部變量獲取子組件其他成員》只能在模版中使用子組件引入的缺陷

最終效果跟上面結(jié)果一樣

總結(jié)

關(guān)于@ViewChild還有很多東西可說,這里我不做多說,我會(huì)在以后的文章中,單獨(dú)寫一遍來講,感興趣的朋友們請(qǐng)繼續(xù)關(guān)注武林網(wǎng)。

好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)武林網(wǎng)的支持。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 龙泉市| 同江市| 定边县| 左贡县| 延吉市| 凯里市| 边坝县| 安阳县| 磐安县| 沅陵县| 呼和浩特市| 武定县| 龙泉市| 涿州市| 凤城市| 临猗县| 西城区| 旬阳县| 肇东市| 屏东县| 葵青区| 海林市| 隆林| 怀宁县| 洛南县| 邯郸市| 仁怀市| 二连浩特市| 阿克苏市| 华蓥市| 三江| 佛坪县| 志丹县| 千阳县| 桃园县| 祁连县| 肇源县| 远安县| 息烽县| 临洮县| 呼玛县|