Angular 在“ngFor”创建元素时调用方法

Angular 在“ngFor”创建元素时调用方法,angular,angular5,Angular,Angular5,我需要循环中的元素宽度,如何调用从ngFor循环创建元素的方法。我试过了,但没用。我正在尝试调用组件中的方法。不符合指令 以下是我的尝试: <ul class="cart-card"> <li *ngFor="let size of sizes" class="cart-card--content" [ngClass]="{'active': activeSize == size}" (click)="setServiceBySize(size)"

我需要循环中的元素宽度,如何调用从
ngFor
循环创建元素的方法。我试过了,但没用。我正在尝试调用组件中的方法。不符合指令

以下是我的尝试:

<ul class="cart-card">
    <li *ngFor="let size of sizes" class="cart-card--content" 
    [ngClass]="{'active': activeSize == size}"
    (click)="setServiceBySize(size)"
    (onCreate)="loopMethod(size)">//not calls
      <div class="cc-content-desc">{{appProps[sizeMap[size]['title']]}}</div>
      <div class="cc-content-image-xs" [ngClass]="'icon' + size" ></div>
      <div class="cc-content-desc1">{{appProps[sizeMap[size]['desc1']]}}</div>
    </li>
  </ul>
    //不调用 {{appProps[sizeMap[size]['title']]} {{appProps[sizeMap[size]['desc1']]}

您只需将函数调用部分移动到
li
的内容中即可

<ul class="cart-card">
  <li *ngFor="let size of sizes" class="cart-card--content" 
    [ngClass]="{'active': activeSize == size}"
    (click)="setServiceBySize(size)">

    {{ loopMethod(size) }} 
    ...
  </li>
</ul>
    {{loopMethod(size)}} ...

您只需将函数调用部分移动到
li
的内容中即可

<ul class="cart-card">
  <li *ngFor="let size of sizes" class="cart-card--content" 
    [ngClass]="{'active': activeSize == size}"
    (click)="setServiceBySize(size)">

    {{ loopMethod(size) }} 
    ...
  </li>
</ul>
    {{loopMethod(size)}} ...

工作正常。我是否可以有条件地调用此方法,如:
{{loopMethod(size):activeSize==size}}
@3gwebtrain您可以使用
条件表达式
,或者简单地使用
ngIf
表达式进行函数调用。我是否可以有条件地调用此方法,如:
{{loopMethod(size):activeSize==size}}
@3gwebtrain您可以使用
条件表达式
,或者简单地使用
ngIf
表达式进行函数调用。