我想使用[style]为我的列的每一列应用不同的宽度,如示例所示,我尝试了[style]="{'width.px':'column.length + 10'}"
但是column.length不是在模板上工作,在示例下面我的模板
<p-column *ngFor="let column of columns"
[field]="column"
[header]="label[column] ? label[column] : column"
[style]="{'width.px':'column.length + 10'}"></p-column>
提前感谢。
答案 0 :(得分:0)
尝试:
[style]="{'width': column.length + 'px'}"
答案 1 :(得分:0)
我认为在模板中进行大量评估通常不是一个好主意:
在您的组件中,您可以映射列并在那里进行计算,假设列和对象数组。您可以映射并添加新属性columnWidth,从而进行评估。
//assuming you have an array of objects.
var columns = [
{
id : 1},
{id: 2},
{id :3}
];
var columnWithExtraProperty = columns.map( (column : any) => {
return{
...column,
columnWidth : column.length + 10 + 'px'
}
});
// console.log(columnWithExtraProperty);
然后在模板中尝试:
<p-column *ngFor="let column of columnWithExtraProperty"
[field]="column"
[header]="label[column] ? label[column] : column"
[style]="{'width.px':column.columnWidth}"></p-column>
答案 2 :(得分:0)
我发现这个解决方案并不完美,但对我来说,它解决了这个问题:
[style]="{'width.px': +(column.length)+20}"
&#39; +&#39; sign是否可以将值转换为数字(我尝试将数字(列)放在这里没有工作) - 这很奇怪。我认为这种情况正在发生,因为column.length
假设是一个数字,我为文本边缘添加了20 px。