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 внутри буду благодарен.