91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Angular模板引用變量及其作用域的示例分析

發布時間:2021-08-07 10:00:22 來源:億速云 閱讀:136 作者:小新 欄目:web開發

小編給大家分享一下Angular模板引用變量及其作用域的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

Angular模板引用變量

如果你曾經參與過Angular項目的開發,那么你可能一眼就會看出誰將是本文的主角:

<input type="text" [value]="value" #name>

若你對此陌生,也無須在意。示例代碼的<input>標簽的屬性中存在一個畫風明顯與其他屬性不同的家伙——#name,這種以一個#開頭命名,被附加在DOM元素上的屬性,被稱為模板引用變量(template reference variables)。

那么何為模板引用變量呢?文檔是這樣描述的:

A template reference variable is often a reference to a DOM element within a template. It can also be a reference to an Angular component or directive or a web component.

模板引用變量可以是Angualr模板中的DOM元素、Angular組件(指令),甚至Web組件的引用,而它具體是什么,則取決于它所依附的元素(不使用指令進行干預時)。如前文示例代碼中的模板引用變量name就是<input>這一DOM元素的引用。

既然模板引用變量是模板中某一元素的引用,那理所當然地我們便可以通過這個引用變量" 觸及 "該模板元素的" 實體 "。這在實際地開發中是十分實用的,考慮以下代碼:

<app-component #component [input]="variable"></app-component>
{{ component.input }}
{{ component.func() }}

通過模板引用變量我們獲得了app-component組件的實例引用,這使得我們可以輕松地在模板中訪問app-component組件內部的成員。在某些情境下,這種能力給我們的開發提供了很大的助力。

模板引用變量的作用域

You can refer to a template reference variable anywhere in the template.

在文檔中,官方毫不含糊地向我們表示:模板引用變量可以在模板中的任何地方使用。最騷的是,“任何地方”還被特別加粗。我們在大多數的時候,并不會對這句話產生疑問,但也許某天你會懷疑這個anywhere是否真實。有如下的代碼:

<app-card>
  <ng-template #body>
    <app-component #component [input]="variable"></app-component>
  </ng-template>
  <ng-template #footer>
    {{component.input}}
  </ng-template>
</app-card>

當代碼運行后,我們將會在控制臺看到這樣的錯誤提示:

TypeError: Cannot read property 'input' of undefined

為什么component會是undefined?

答案其實很明顯,模板引用對象可以在模板中的任何地方使用,但此例中component的定義與使用卻并不在一個template中。文檔中所描述的 template 并不能直接與 組件的模板文件 劃上等號。當我們使用ng-template時,會在當前模板的內部再建立一個新的模板,它的內部無法直接被外部模板觸及,因此示例中的component.input自然會引起錯誤。

當 template 的定義明確以后,一切都是如此簡單:模板引用變量存在作用域,其作用域是它所處的 template,而非它所在的模板文件,同時它可以在其作用域內的任何地方被使用。

最后,我們再看一個例子:

<div *ngIf="true">
  <app-component #component [input]="variable"></app-component>
</div>
{{component.input}}

當這段代碼運行后,我們依舊會在控制臺看到:

TypeError: Cannot read property 'input' of undefined

看完了這篇文章,相信你對“Angular模板引用變量及其作用域的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

如皋市| 建平县| 凤城市| 新兴县| 澄迈县| 凤台县| 正蓝旗| 建昌县| 中西区| 广昌县| 宁河县| 泌阳县| 伊通| 木兰县| 蒲江县| 呼玛县| 郁南县| 迁西县| 义乌市| 峨眉山市| 卓资县| 马山县| 龙门县| 延长县| 共和县| 丘北县| 澳门| 松江区| 湘潭市| 重庆市| 惠东县| 监利县| 普兰店市| 朔州市| 且末县| 吉木萨尔县| 衢州市| 临江市| 龙山县| 东平县| 宜兰县|