一起使用ng-template和ngIf,其中ngIf可以访问paased参数

时间:2020-06-25 04:03:44

标签: angular angular-ng-if ng-template

<div>
  <h3>All Templates</h3>
  <ul *ngFor="let number of numbers">
    <ng-container [ngTemplateOutlet]='number % 2 == 0 ? even_tpl : odd_tpl' [ngTemplateOutletContext]="{number:number}"></ng-container>
  </ul>
</div>

<ng-template #odd_tpl let-number='number'>
  <li>Odd: {{number}}</li>  
</ng-template>

<ng-template #even_tpl let-number='number'>
  <li>Even: {{number}}</li>  
</ng-template>

PS。 Vivek Doshi的答案here 中的示例代码。

但是我要寻找的是仅在满足条件时才进入ng-template,如下所示:

<ng-template #odd_tpl let-number='number' *ngIf="number > 10">
  <li>Odd: {{number}}</li>  
</ng-template>

但显示错误:

未定义标识符“数字”。组件声明,模板变量声明和元素引用不包含此类成员ng

我想访问传递的参数number,这可能吗?

1 个答案:

答案 0 :(得分:0)

因此,按照yurzui的评论,我曾经使用过ng-container,以前在DOM中添加了一些元素,但这是我修复的错误,现在一切正常。

我可以检查这种情况-

<ng-template #odd_tpl let-number='number'>
   <ng-container *ngIf="number > 10">
     <li>Odd: {{number}}</li>  
   </ng-container>
</ng-template>