Angular 4个模板引用变量

Angular 4 template reference variables

是否可以有动态模板引用变量?

例如,我想做这样的事情:

 <tr *ngFor="let item of items.controls; let i=index" >
  <th >{{i}}</th>
  <td>

    <mat-form-field>
      <input matInput matDatepicker="{{'pick'+i}}" placeholder="date" 
      formControlName="date">

      <mat-datepicker-toggle matSuffix for="{{'pick'+i}}">
      </mat-datepicker-toggle>

      <mat-datepicker #"{{'pick'+i}}"></mat-datepicker>

    </mat-form-field>

  </td>
 </tr>

我想弄清楚如何编写 <mat-datepicker #"{{'pick'+i}}"></mat-datepicker> 以使引用变量随循环索引动态变化。在这里使用插值只是为了解释我想要实现的目标。

问候 阿迪萨

嵌入式视图中的模板引用变量(*ngFor)有自己的作用域,因此您可以使用相同的名称:

<tr *ngFor...>
    ...
    <mat-form-field>
      <input matInput [matDatepicker]="pick" placeholder="date" formControlName="date">
      <mat-datepicker-toggle matSuffix [for]="pick"></mat-datepicker-toggle>
      <mat-datepicker #pick></mat-datepicker>
    </mat-form-field>

Example

不能动态命名模板引用变量。它们必须是静态可分析的

查看 here您对实现目标有何其他建议