簡體   English   中英

訪問* ngIf中的模板變量

[英]Access template variable in *ngIf

我試圖在元素上定義模板變量並使用其隱藏屬性來識別元素是否實際存在於DOM中,然后基於該元素顯示另一個元素。 但是如果有結構指令,模板變量似乎不會返回值。

<hr class="divider" *ngIf="true" #divi>
<div *ngIf="showResendWelcomeEmailButton">
  <a *wpHasAnyPermission="[{'something': true}]" 
     #resendEmailBtn>
    Resend Welcome Email
  </a>
</div>
<div class="pull-right">
  <a #editAccountBtn>Edit Account Details</a>
</div>

rbtn: {{resendEmailBtn?.hidden}}
ebtn: {{editAccountBtn?.hidden}}
dline: {{divi?.hidden}}

輸出是

rbtn:
ebtn: false
dline: 

正如您所看到的,包含屬性ngIfwpHasAnyPermission元素上的模板變量都沒有返回值。

我最終想要做的是在ngIf of hr使用resendEmailBtneditAccountBtn來決定顯示分隔符。

解決這個問題的最佳方法是什么? 我想避免處理組件代碼。 嘗試用HTML解決這個問題。

在應用*ngIf的元素之外,該變量不可用。

<hr class="divider" *ngIf="false" #divi>

將被取代

<template let-divi [ngIf]="false">
  <hr class="divider"  >
</template>

divi只能在<template>元素中使用。

你可以加

@ViewChild('editAccountBtn') editAccountBtn:ElementRef;

到您的組件類,使其在整個組件模板中可用。 當查詢的元素添加到DOM時,它只有一個值。 如果它在評估為false*ngIf ,則該值將為null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM