Angular?ViewChild組件間通信demo
- ViewChild
這篇文章是Angular中組件間通信系列的一部分。雖然你可以從任何地方開始,但最好還是從頭開始,對(duì)嗎?
我們現(xiàn)在進(jìn)入了Angular中組件間交流的最后一個(gè)方法。這是一個(gè)我不確定是否真的應(yīng)該寫出來的方法。你看,在我看來,使用ViewChild來讓組件之間相互交流,是最后的手段。它不是那種反應(yīng)式的,而且經(jīng)常遇到各種競(jìng)賽條件,因?yàn)槟銢]有使用像EventEmitters和數(shù)據(jù)綁定這樣的東西,而是直接調(diào)用方法。
由于上述原因,我打算把這段話說得簡(jiǎn)短一些,因?yàn)樵诖蠖鄶?shù)情況下,你不會(huì)使用ViewChild在組件之間進(jìn)行通信,但知道它是一種選擇還是很好的。
通過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()指令來尋找HTML中的ChildComponent。有幾種不同的方法可以做到這一點(diǎn),例如,你可以在你的HTML中使用#name格式,然后用這個(gè)名字來尋找孩子,但重要的是,我們可以使用@ViewChild()來尋找html中的孩子元素,并獲得它們的引用。
我們的ChildComponent看起來像這樣:
@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!" );
}
}
沒有太多花哨的東西。在運(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)文章
AngularJS的依賴注入實(shí)例分析(使用module和injector)
這篇文章主要介紹了AngularJS的依賴注入,結(jié)合實(shí)例形式分析了依賴注入的原理及使用module和injector實(shí)現(xiàn)依賴注入的步驟與操作技巧,需要的朋友可以參考下2017-01-01
Angular outlet實(shí)現(xiàn)頁面布局示例詳解
這篇文章主要為大家介紹了Angular outlet實(shí)現(xiàn)頁面布局示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
詳解Angular5/Angular6項(xiàng)目如何添加熱更新(HMR)功能
這篇文章主要介紹了詳解Angular5/Angular6項(xiàng)目如何添加熱更新(HMR)功能,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10
AngularJS基礎(chǔ) ng-value 指令簡(jiǎn)單示例
本文主要介紹AngularJS ng-value 指令,這里對(duì)ng-value 的基礎(chǔ)資料做了整理,并附實(shí)例代碼,有需要的小伙伴可以參考下2016-08-08
Angular搜索場(chǎng)景中使用rxjs的操作符處理思路
這篇文章主要介紹了Angular搜索場(chǎng)景中使用rxjs的操作符處理思路,主要的思路就是通過Subject來發(fā)送過濾條件,這樣就可以使用rxjs的各種操作符,可以快捷很多。需要的朋友可以參考下2018-05-05
Angular ui-roter 和AngularJS 通過 ocLazyLoad 實(shí)現(xiàn)動(dòng)態(tài)(懶)加載模塊和依賴
這篇文章主要介紹了Angular ui-roter 和AngularJS 通過 ocLazyLoad 實(shí)現(xiàn)動(dòng)態(tài)(懶)加載模塊和依賴,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11
AngularJS實(shí)現(xiàn)網(wǎng)站換膚實(shí)例
這篇文章主要為大家詳細(xì)介紹了AngularJS實(shí)現(xiàn)網(wǎng)站換膚的簡(jiǎn)單實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12

