angular - 动态计算元素的宽度?
问题描述
我有要显示的元素数组,并且我想根据元素的数量动态计算每个元素的宽度。
有什么建议吗?
<span class="years" [style.width.%]="65%/data.length"
*ngFor="let year of data">{{year.displayName |translate}}</span>
解决方案
一个简单的选择可能是将函数内联到模板中并使用它来计算宽度
组件.html
<span class="years" [style.width]="calculateWidth(data.length)"
*ngFor="let year of data">{{year.displayName |translate}}</span>
组件.ts
calculateWidth(length){
return 65/length+'%'
}
或者,为了避免在每次渲染时计算模板,最好只计算数据何时进入。例如,保留一个名为spanWidth
或类似的变量,并为接收到的数据分配一个值(如果使用setter或ngOnChanges从父级传递)
推荐阅读
- xml - 对于 XML 中的每个节点未按预期工作
- python - 更快地实现像素映射
- c++ - List 上的冒泡排序——在计算上花费了太多时间
- python - 如何在包依赖项> 500MB的AWS lambda上运行python代码?
- android - 如何在 android Studio 上直接向 TFVC 添加解决方案?
- react-native - react-devtools中的“连接到react ....”,当我想连接react native android模拟器时
- javascript - 当 JavaScript 是单线程语言时,如何在 JavaScript 中使用异步非阻塞代码?
- macos - UserNotifications 使用 UNUserNotificationCenter 并在系统偏好设置中设置警报
- swift - SpriteKit - 弹跳节点恒速/速度?
- c# - 如何为从 Unity 中的 Monobehaviour 继承的类编写单元测试?