在ngFor中声明变量

时间:2016-05-09 11:05:23

标签: angular

在我的angular2项目中,我需要提供一个矩阵。 这是我目前的代码:

<tr *ngFor="let worker of workers">
    <td class="{{worker.fired ? 'fired-worker':''}}">{{worker.lastName}}<br>{{worker.firstName}}</td>
    <td *ngFor="let course of courses;" class="sk-table-sub-header">

        <div *ngIf="course.isGeneric">
            <div class="col-xs-6" sc-dc [sc-dc-date]="matrix[worker.id][course.id].expiration">
                <date-picker (onDateChanged)="onDateChanged($event, worker, course, 'genericStartDate')" [date]="matrix[worker.id][course.id].genericStartDate></date-picker>
            </div>
            <div class="col-xs-6 training-table-rounded-cell" sc-dc [sc-dc-date]="matrix[worker.id][course.id].expiration">
                <date-picker (onDateChanged)="onDateChanged($event, worker, course, 'expiration')" [date]="matrix[worker.id][course.id].expiration" ></date-picker>
            </div>                    
        </div>
        ...

如您所见,我多次使用matrix[worker.id][course.id].expiration。 我试图避免声明这样的变量:

 <td *ngFor="let course of courses; let item = matrix[worker.id][course.id]" ...>

但我得到一个解析错误:

 Parser Error: Unexpected token [, expected identifier, keyword, or string at column 44 in [ngFor let course of courses; let i = matrix[worker.id][course.id]] in TrainingPlanComponent@44:20 ("r.fired ? 'fired-worker':''}}">{{worker.lastName}}<br>{{worker.firstName}}</td>

有没有办法实现我的意图?

非常感谢

1 个答案:

答案 0 :(得分:3)

您目前无法为模板变量分配任意值。

  • 模板变量可以引用添加它们的元素或组件
  • 可以将
  • hellomongo.cpp:(.text+0x3f): undefined reference to `mongocxx::v_noabi::uri::k_default_uri[abi:cxx11]' 引用分配给模板变量,例如exportAs
  • #xxx="ngForm" index之类的指令创建的局部变量可以分配

还有一个公开的问题可以支持您的用例,但目前还不清楚是否以及何时支持此用例。

作为一种解决方法,您可以考虑将模板的一部分包装到自己的组件中,并将值传递给ngFor s