您好,登錄后才能下訂單哦!
本篇內容主要講解“Angular中@ViewChild的用法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Angular中@ViewChild的用法”吧!
簡單來說
個人對@ViewChild的理解就是:它是一個指代,可以通過這個指代,得到這個組件或者元素。并且我們可以使用得到的這個組件的值和方法。
為了更直觀的知道它是做什么,直接上代碼
子組件child
content:'Zita'; changeChildCon() { this.content = 'Zita1111' }
父組件parent
html <app-child #ChildrenView></app-child> ts import { ViewChild } from '@angular/core'; @ViewChild('ChildrenView', { static: true }) childrenView: any; //ChildrenView為子組件中的#后邊的值,childrenView是個名稱用來指代子組件 this.childrenView.content // Zita 獲取子組件中的值 this.childrenView.changeChildCon() // 執行子組件中的方法 this.childrenView.content // Zita1111
html
<figure #parBele> 我是父元素中的一個標簽figure,我可以通過viewchild來獲取,并且獲取到我之后可以改變我的樣式 </figure>
ts
import { ViewChild, ElementRef } from '@angular/core'; @ViewChild('parBele', { static: true }) eleRef: ElementRef; this.eleRef.nativeElement.style.color = 'red'; // 更改獲取的dom元素的樣式
那么,通過這段代碼,你就會在頁面中看到,figure標簽中的字體顏色變成了紅色
angular8.0之后一定要加上{ static: true } 這個屬性哦,除此外,官方給這個屬性的解釋說明是:
元數據屬性:
selector - 用于查詢的指令類型或名字。
read - 從查詢到的元素中讀取另一個令牌。
static - True to resolve query results before change detection runs, false to resolve after change detection. Defaults to false.
對于static,意思就是:如果為true,則在運行更改檢測之前解析查詢結果,如果為false,則在更改檢測之后解析。默認false.
怎么理解吶?
主要就在于“更改檢測”這個動作的發生節點。
例如,我們經常使用到的ngIf、ngShow指令,如果子組件中加入了這些指令,而同時static為true。那么,當我們去捕獲指代目標時,得到的值將是undefined
到此,相信大家對“Angular中@ViewChild的用法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。