场景:需要显示十几条样式一样的Label; 但是label的值和显示条件不一样;如果平述的话,洋洋洒洒的代码基本一样,就是几个参数元素不一样,不值得重复去写无效代码;所以想使用ngTemplateOutlet ,将同样的html代码写在模板里面;将不一样的元素当参数传进去,进行判断显示。
eg:
<ng-container *ngTemplateOutlet="
//模板Id
requiredTemp;
//模板內容,一个object对象,里面属性随意声明
context: {
requiredFlag: requiredSetting?.isRequested,
key: 'Technician'
}
">
在模板中,使用 let-templateParam="param" 这样的形式,接收到上面ng-container传过来的参数,进行显示渲染处理;当有上百个ng-container的时候,也只需要写一遍template;代码自然就简化了
<ng-template #requiredTemp let-requiredFlag="requiredFlag" let-key="key">
<ng-container *ngIf=" !requiredFlag ; else showRequired">
<nz-form-label nzNoColon nzSpan="9">{{ l(key) }} </nz-form-label>
</ng-container>
<ng-template #showRequired>
<nz-form-label nzNoColon nzSpan="9" nzRequired>{{ l(key) }}</nz-form-label>
</ng-template>
</ng-template>