角材料表指定显示的列

时间:2020-08-19 12:45:53

标签: angular angular-material

我正在开发带有此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
}

反正有这样做吗?

0 个答案:

没有答案