Angular ngIf显示/隐藏元素并执行函数

Angular ngIf显示/隐藏元素并执行函数,angular,Angular,我有一些例子 <div *ngIf="nameOfDocx == 'emailTab'" class="tabcontent" #tab2 label="Email"> <details *ngFor="let doc of emaildocuments"> <summary>{{doc.documentGuid}}</summary> <ul *ngFor="let page of doc.Documen

我有一些例子

  <div *ngIf="nameOfDocx == 'emailTab'" class="tabcontent" #tab2 label="Email">
    <details *ngFor="let doc of emaildocuments">
      <summary>{{doc.documentGuid}}</summary>
      <ul *ngFor="let page of doc.DocumentPages">
        <li (click)="pickDoc(page)">{{ page.pageGuid}}</li>
      </ul>
    </details>
  </div>

{{doc.documentGuid}

{{page.pageGuid}

显示和隐藏DOM元素很好,但我
同时,当varialble等于string时,执行一些函数。有可能吗?例如,某些函数在ngIf为true时向DOM添加元素

如下调用您的方法:
{{{yourMethod()}


{{yourMethod()}}
{{doc.documentGuid}

{{page.pageGuid}


像这样调用您的方法:
{{{yourMethod()}


{{yourMethod()}}
{{doc.documentGuid}

{{page.pageGuid}


您可以像方法一样在
*ngIf
中添加任何表达式。在方法中执行您的逻辑

  <div *ngIf="myMethod(nameOfDocx)" class="tabcontent" #tab2 label="Email">
    <details *ngFor="let doc of emaildocuments">
      <summary>{{doc.documentGuid}}</summary>
      <ul *ngFor="let page of doc.DocumentPages">
        <li (click)="pickDoc(page)">{{ page.pageGuid}}</li>
      </ul>
    </details>
  </div>

您可以在
*ngIf
中添加任何表达式,就像方法一样。在方法中执行您的逻辑

  <div *ngIf="myMethod(nameOfDocx)" class="tabcontent" #tab2 label="Email">
    <details *ngFor="let doc of emaildocuments">
      <summary>{{doc.documentGuid}}</summary>
      <ul *ngFor="let page of doc.DocumentPages">
        <li (click)="pickDoc(page)">{{ page.pageGuid}}</li>
      </ul>
    </details>
  </div>

Lol你比我快,完全相同的答案:DLol你比我快,完全相同的答案:Dit很好,但我想知道为什么这个方法的执行次数与循环中的元素数一样多foryes,因为它在每次迭代中都被调用,如果你想从模板中调用它,这是唯一的解决方案,否则你可以在它内部创建一个方法,调用
yourMethod
并返回比较结果
nameOfDocx=='emailTab'
很好,但我想知道为什么这个方法的执行次数与循环中的元素数一样多,因为它在每次迭代中都会被调用,如果你想从模板中调用它,这是唯一的解决方案,否则你可以创建一个方法,在它里面,调用
yourMethod
并返回比较结果
nameOfDocx==“emailTab”
myMethod(nameOfDocx){
   // some logic
   return nameOfDocx == 'emailTab'
}