是否可以使用角度组件模板中的let为变量赋值?

时间:2018-06-14 14:24:30

标签: angular angular-template

请考虑以下代码段:

<div class="col-4" style="text-align: center;">
    <skin-stat-circle>{{statByType('Users')?.count}}</skin-stat-circle><br>
    <span>{{statByType('Users')?.label}}</span>
</div>

是否可以使用statByType('Users')*ngFor分配给let...中的本地模板变量?

修改

在@incaner的帮助下解决了这个问题。这很有用 - 就像很多。

<ng-template #statTemplate let-stat="stat">
   <div class="col-4" *ngIf="stat">
      <skin-stat-circle >{{stat.count}}</skin-stat-circle>
      <br>
      <span>{{stat.label}}</span>
   </div>
</ng-template>
<skin-stat-group>
   <div class="container">
      <div class="row">
         <ng-container *ngTemplateOutlet="statTemplate;context:{stat: statByType('Users')}"></ng-container>
         <ng-container *ngTemplateOutlet="statTemplate;context:{stat: statByType('Projects')}"></ng-container>
         <ng-container *ngTemplateOutlet="statTemplate;context:{stat: statByType('Layers')}"></ng-container>
      </div>
   </div>
</skin-stat-group>

2 个答案:

答案 0 :(得分:2)

您可以尝试使用let- *指令:

<ng-template let-variable="statByType('Users')?.count"> 
  {{variable}}
</ng-template>

然后只需使用模板。

如果您需要更多帮助,请阅读Angular Docs

答案 1 :(得分:0)

在@incaner的帮助下解决了这个问题。这很有用 - 就像很多。

<ng-template #statTemplate let-stat="stat">
   <div class="col-4" *ngIf="stat">
      <skin-stat-circle >{{stat.count}}</skin-stat-circle>
      <br>
      <span>{{stat.label}}</span>
   </div>
</ng-template>
<skin-stat-group [title]="">
   <div class="container">
      <div class="row">
         <ng-container *ngTemplateOutlet="statTemplate;context:{stat: statByType('Users')}"></ng-container>
         <ng-container *ngTemplateOutlet="statTemplate;context:{stat: statByType('Projects')}"></ng-container>
         <ng-container *ngTemplateOutlet="statTemplate;context:{stat: statByType('Layers')}"></ng-container>
      </div>
   </div>
</skin-stat-group>