【问题标题】:Angular 4 template reference variablesAngular 4 模板引用变量
【发布时间】:2018-07-14 17:04:48
【问题描述】:

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

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

 <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>

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

问候 阿迪萨

【问题讨论】:

    标签: angular material-design angular2-template angular-material2 angular-components


    【解决方案1】:

    内嵌视图(*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

    【讨论】:

    【解决方案2】:

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

    看看 here,您对实现目标还有其他建议

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-27
      • 1970-01-01
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-26
      • 2017-12-04
      相关资源
      最近更新 更多