Флажок не отмечен, когда начальные значения загружаются в таблицу соответствия. - PullRequest
0 голосов
/ 02 июля 2019

Хотите загрузить таблицу с уже установленным флажком с начальными значениями из локальной переменной хранения.Я уже поместил исходные данные в selectionModel:

this.servChecked = [
    {tipo: 'Servicio', descripcion: 'Visit', cantidad: '1', codsrv: '11123'},
    {tipo: 'Equipo', descripcion: 'RPV', cantidad:'1', codsrv: '11124'}
  ];

this.selection = new SelectionModel<ServiciosAdicionales>(true, this.servChecked);

It does load the array in the selection.selected but the checkboxs are not checked.

TS:

 this.servChecked = JSON.parse(localStorage.getItem("servAdicionales"));
    this.infoCompleta = JSON.parse(localStorage.getItem("infoParaServiciosAdicionales"));
    this.tipoServicio = this.route.snapshot.paramMap.get("tipoServicio");

    let listEquipos = [];
    let listServicios = [];
    this.datosServicios.forEach(element => {
      switch(element.tipo) {
        case '1':
          element.tipo = 'Servicio'
          listServicios.push(element);
          break;
        case '2':
          element.tipo = 'Equipo'
          listEquipos.push(element);
          break;
      }
    });

    this.dataSource = new MatTableDataSource<ServiciosAdicionales>(this.datosServicios);
    this.dataSourceEquipo = new MatTableDataSource<ServiciosAdicionales>(listEquipos);
    this.dataSourceServicio = new MatTableDataSource<ServiciosAdicionales>(listServicios);

    this.selection = new SelectionModel<ServiciosAdicionales>(true, this.servChecked);

Я хочу, чтобы флажки проверялись при загрузке начальных значений.

1 Ответ

0 голосов
/ 02 июля 2019

Объект, который вы пытаетесь вставить в модель выбора, взят из массива dataosServicios .Но модель выбора ищет объект, который будет отображен в таблице.Это будет фактический объект строки, который отличается от массива.

После инициализации источника данных попробуйте следующий код:

this.selection = new SelectionModel<ServiciosAdicionales>(true, this.dataSourceEquipo.data[0]);

Приведенный выше код выберет первую строку в таблице,

Чтобы ответить на ваш вопрос, получите данные из localStorage , а затем создайте источник данных для таблицы.Сопоставьте объект из localStorage с dataSource.data, а затем добавьте объекты dataSource.data в массив selectionModel.

...