Angular как реализовать динамическую ширину объекта DOM(ячейка таблицы) опираясь на свойство объекта

В кратце, парсится JSON создается массив объектов перебираемый директивой *ngFor.

<table *ngFor = "let profil of profilType.profils" class="map_item" style="margin-top: 30px;">
          <tbody>

            <tr>
              <td>{{profil.len}}мм х {{profil.quantity}}</td>
              <td *ngFor = "let workPiece of profil.workPieces; let i = index;" colspan="1">
                <div [style.width]="workPiece.width+'px'"> {{workPiece.len}} </div>
              </td>
              <td>Остаток</td>
            </tr>

          </tbody>
        </table>

В общем необходимо задать ширину ячейки исходя из этого свойства объекта. Но необходимо пересчитать это свойство, условно поделить на число и умножить на число. Как это сделать? Определить как поле и вычислять в конструкторе не выходит, он при парсинге даже не вызывается, на стороне API мне эта лапша не нужна(имею в виду вычислить это свойство должен клиент), подставить элементарные мат.операции в шаблон, что бы вычислить на месте, нельзя, сыпет ошибки, если написать в классе объекта workPiece метод для вычисления то в шаблоне его нельзя вызвать. Так же пробовал использовать getter в классе объекта workPiece. Удивительно, но возвращает пустоту. (сори если вопрос тупой, но я не профи, особенно в ангуляр, прошарил инфу которую мог, если дадите ссылку на офф доку где это поясняется буду безмерно благодарен, я не нашел там того что бы мне помогло).

Так же прикладываю мою жалкую попытку реализовать то что мне нужно непосредственно в TS классе.

export class WorkPiece {
    profName: string | null;
    len: number | null;
    quantity: number | null;
    get width(): number { if( this.len != null) return this.len/6000*100; return 0;}
  
    constructor(profName: string | null = null, len: number | null = null, quantity: number | null = null) {
      this.profName = profName;
      this.len = len;
      this.quantity = quantity;
    }

    getWidth():number{
      return 100;
    }
  }

p.s. С распаршеными свойствами работает, но понятно значения не те, так на абум проверил. p.p.s. Если подскажите как задать ширину самой ячейки таблицы а не костыль с div внутри буду благодарен.


Ответы (0 шт):