在组件中,我有一个与此相似的源代码:
<ng-template let-col let-row="rowData" let-rowIndex="rowIndex" pTemplate="body">
<span *ngIf='row.job_id'>
{{row.job_id}}
</span>
<span *ngIf='!row.job_id'>
Job ID Not available
</span>
</ng-template>
我想在单个else
中使用ng-template
条件。我该如何实现?
答案 0 :(得分:4)
如果只需要更改跨度内的文本,则可以简单地使用:
{{ row.job_id ? row.job_id : 'Job ID Not available' }}
像这样避免* ngIf
如果您真的想使用if / else,那似乎可行:
<ng-template let-col let-row="rowData" let-rowIndex="rowIndex" pTemplate="body">
<span *ngIf='row.job_id; else notAvailable'>
{{row.job_id}}
</span>
<ng-template #notAvailable>
<span>
Job ID Not available
</span>
<ng-template>
</ng-template>
答案 1 :(得分:2)
将else路径包装在ng-template
标记中,为其提供模板变量,然后使用以下变量:*ngIf='row.job_id; else elsePath;'
与此类似:
<ng-template let-col let-row="rowData" let-rowIndex="rowIndex" pTemplate="body">
<span *ngIf='row.job_id; else elsePath;'>
{{row.job_id}}
</span>
<ng-template #elsePath>
Job ID Not available
</ng-template>
</ng-template>
只需使用三元运算符:
<ng-template let-col let-row="rowData" let-rowIndex="rowIndex" pTemplate="body">
<span>
{{ row.job_id ? row.job_id : 'Job ID Not available' }}
</span>
</ng-template>