Angular?ViewChild組件間通信demo
- ViewChild
這篇文章是Angular中組件間通信系列的一部分。雖然你可以從任何地方開(kāi)始,但最好還是從頭開(kāi)始,對(duì)嗎?
我們現(xiàn)在進(jìn)入了Angular中組件間交流的最后一個(gè)方法。這是一個(gè)我不確定是否真的應(yīng)該寫(xiě)出來(lái)的方法。你看,在我看來(lái),使用ViewChild來(lái)讓組件之間相互交流,是最后的手段。它不是那種反應(yīng)式的,而且經(jīng)常遇到各種競(jìng)賽條件,因?yàn)槟銢](méi)有使用像EventEmitters和數(shù)據(jù)綁定這樣的東西,而是直接調(diào)用方法。
由于上述原因,我打算把這段話說(shuō)得簡(jiǎn)短一些,因?yàn)樵诖蠖鄶?shù)情況下,你不會(huì)使用ViewChild在組件之間進(jìn)行通信,但知道它是一種選擇還是很好的。
通過(guò)ViewChild調(diào)用一個(gè)方法
想象一下,我有一個(gè)像這樣的AppComponent:
import { Component, ViewChild } from '@angular/core'; import { ChildComponent } from './child/child.component'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { @ViewChild(ChildComponent, {static : false}) childComponent : ChildComponent; runChild() { this.childComponent.run(); } }
它也有像這樣的HTML:
<button (click)="runChild()">Click Me</button> <app-child></app-child>
我們現(xiàn)在有一個(gè)AppComponent,有一個(gè)按鈕,當(dāng)點(diǎn)擊時(shí),將 "運(yùn)行 "我們的子組件。
還注意到我們使用了@ViewChild()指令來(lái)尋找HTML中的ChildComponent。有幾種不同的方法可以做到這一點(diǎn),例如,你可以在你的HTML中使用#name格式,然后用這個(gè)名字來(lái)尋找孩子,但重要的是,我們可以使用@ViewChild()來(lái)尋找html中的孩子元素,并獲得它們的引用。
我們的ChildComponent看起來(lái)像這樣:
@Component({ selector: 'app-child', templateUrl: './child.component.html', styleUrls: ['./child.component.css'] }) export class ChildComponent { run() { //Maybe a bunch of logic here. And then we set a message. console.log("Run Successfully!" ); } }
沒(méi)有太多花哨的東西。在運(yùn)行這個(gè)解決方案時(shí),當(dāng)我們點(diǎn)擊AppComponent中的按鈕時(shí),它就會(huì)調(diào)用ChildComponent的運(yùn)行方法,一切都很好!這就是我們的解決方案。所以,首先要進(jìn)入的是。
以上就是Angular ViewChild組件間通信demo的詳細(xì)內(nèi)容,更多關(guān)于Angular ViewChild組件通信的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Angular 4環(huán)境準(zhǔn)備與Angular cli創(chuàng)建項(xiàng)目詳解
Angular4.0來(lái)了,更小,更快,改動(dòng)少,所以下面這篇文章主要給大家介紹了關(guān)于Angular 4環(huán)境準(zhǔn)備與學(xué)會(huì)使用Angular cli創(chuàng)建項(xiàng)目的相關(guān)資料,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來(lái)一起看看吧。2017-05-05AngularJS equal比較對(duì)象實(shí)例詳解
這篇文章主要介紹了AngularJS API之equal比較對(duì)象的相關(guān)資料,需要的朋友可以參考下2016-09-09Angular2學(xué)習(xí)教程之TemplateRef和ViewContainerRef詳解
這篇文章主要給大家介紹了Angular2中TemplateRef和ViewContainerRef的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-05-05angular 實(shí)時(shí)監(jiān)聽(tīng)input框value值的變化觸發(fā)函數(shù)方法
今天小編就為大家分享一篇angular 實(shí)時(shí)監(jiān)聽(tīng)input框value值的變化觸發(fā)函數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08angular 動(dòng)態(tài)組件類型詳解(四種組件類型)
這篇文章給大家講解四種組件類型,非常不錯(cuò),具有參考借鑒價(jià)值,對(duì)angular 動(dòng)態(tài)組件類型感興趣的朋友參考下吧2017-02-02AngularJS使用ng-inlude指令加載頁(yè)面失敗的原因與解決方法
這篇文章主要介紹了AngularJS使用ng-inlude指令加載頁(yè)面失敗的原因與解決方法,對(duì)比不同瀏覽器錯(cuò)誤提示分析了加載失敗的原因及通過(guò)http訪問(wèn)的解決方法,需要的朋友可以參考下2017-01-01angularjs手動(dòng)識(shí)別字符串中的換行符方法
今天小編就為大家分享一篇angularjs手動(dòng)識(shí)別字符串中的換行符方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10AngularJS實(shí)現(xiàn)tab選項(xiàng)卡的方法詳解
這篇文章主要介紹了AngularJS實(shí)現(xiàn)tab選項(xiàng)卡的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了AngularJS實(shí)現(xiàn)tab選項(xiàng)卡的原理、實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-07-07