我正在开发带有此ng-container的表的组件:
<ng-container *ngFor="let column of etapasColumns;" matColumnDef="{{column}}" >
<th mat-header-cell *matHeaderCellDef style="padding:20px!important">{{column}}</th>
<td mat-cell *matCellDef="let element" >
<etapa-column-component2 [etapa]="getEtapa(element, column)" (procesoSelected)="selected($event)">
</etapa-column-component2>
</td>
</ng-container>
在我的ts中,我用它来设置列的值和单元格的值:
const MAP_NOMBRE_ETAPA: { [tipoEtapa: string]: number} = {
"documentacion":1,
"bobinaBT1":2,
"bobinaBT2":3,
"bobinaBT3":4,
"bobinaAT1":5,
"bobinaAT2":6,
"bobinaAT3":7,
"bobinaRG1":8,
"bobinaRG2":9,
"bobinaRG3":10,
"bobinaRF1":11,
"bobinaRF2":12,
"bobinaRF3":13,
"ensamblajeBobinas":14,
"corteYPlegadoPYS":15,
"soldaduraPYS":16,
"envioPYS":17,
"nucleo":18,
"montaje":19,
"horno":20,
"cYPTapaCuba":21,
"tapa":22,
"radiadoresOPaneles":23,
"cuba":24,
"tintasPenetrantes":25,
"granallado":26,
"pintura":27,
"encubado":28,
"ensayosRef":29,
"terminacion":30,
"envioADeposito":31,
"envioACliente":32
}
...
etapasColumns: string[]= Object.keys(MAP_NOMBRE_ETAPA);
...
getEtapa(t:Transformadores, nombreEtapa: string): any {
let matchEtapa = t.etapa.filter(etapa => etapa.idTipoEtapa == MAP_NOMBRE_ETAPA[nombreEtapa]);
if(matchEtapa.length!=0)
{
return matchEtapa[0];
}
}
这工作得很好,但是需要根据登录用户的属性来过滤MAP_NOMBRE_ETAPA值(登录用户时,我将本地存储项设置为名称“ sector”)... < / p>
例如,我以为这样的事情(显然不起作用):
let sector = localStorage.getItem("sector");
if(sector == "2)
{
MAP_NOMBRE_ETAPA = {
"bobinaBT1":2,
"bobinaBT2":3,
"bobinaBT3":4,
"bobinaAT1":5,
"bobinaAT2":6,
"bobinaAT3":7,
"bobinaRG1":8,
"bobinaRG2":9,
"bobinaRG3":10,
"bobinaRF1":11,
"bobinaRF2":12,
"bobinaRF3":13,
}
}
if(sector==3){
another key values
}
反正有这样做吗?