我正在尝试为某些单元格创建一个使用不同ng-template
的表,具体取决于单元格中的某些数据。 (在这种情况下,如果单元格位于" Entity"列中,我想要一个显示照片和常规数据的模板。)
使用*ngIf
我可以轻松切换表格中的ng-template
。但是当我在切换模板中时,我不再知道如何访问来自周围ngFor
循环的单元格数据。
模板输入变量称为" cell"。
我以为我可以使用cell
将let-value="cell"
传递给新模板,但它不起作用。在模板内部,变量"值"未定义。我还检查了是否" cell"即使使用let-
也不在我的范围内,但它也不是。
如何访问"单元格"我与ng-templates
交换的各种*ngIf
内的模板输入变量?
<table>
<tr *ngFor="let row of tableArray">
<td *ngFor="let cell of row">
<ng-container *ngIf="cell.column === 'Entity' then photoTemplate else cellTemplate"></ng-container>
</td>
</tr>
</table>
<ng-template #cellTemplate let-value="cell">
{{value.display}} <<<==========DOESN'T WORK
</ng-template>
<ng-template #photoTemplate>
{{cell.display}} <<<======= DOESN'T WORK EITHER WITHOUT THE let-
</ng-template>
抱歉新手问题。我来自AngularJS,Angular 5对我来说很新。我搜索了文档但我找不到任何内容。
感谢
约翰
PS这是suggested duplicate的略微变化,因为我试图将动态模板与ngIf一起使用,这是其他人可能会遇到的并发症,但不会在副本中讨论。
最后虽然方法是一样的。我不得不放弃ngIf并使用对模板的引用。 (见下文)。
虽然我注意到,按照建议的副本中的答案对我不起作用:我必须将上下文变量作为键值对context:{cell:cell}
而不是context:cell
传递。