modifyClass 本身并未弃用。它是一种有风险的自定义方法,在使用时应采取预防措施(如 @don 链接的文档中所述),但我们目前没有立即移除它的计划。
我们打印 component:topic-list 和 component:topic-list-items 弃用消息的原因是,这些组件是主题列表的旧实现,在启用 Glimmer 主题列表时不会使用。现在,我们有一组 Glimmer 组件,例如 components/topic-list/item。
因此,从技术上讲,您可以在这些新组件上使用 modifyClass。但是,由于它们是 Glimmer 组件,您将无法通过 JS 类修改样式标签,因此这无助于解决 OP 中的问题。
我们在官方的 d-topic-thumbnails 主题组件中有一个类似的“砌体”模式,所以值得看看它是如何实现的。我们为主题列表的每个“行”添加了一个唯一的类:
然后,我们在单独的 plugin-outlet 中渲染一个动态的 <style> 标签,该标签会定位这些类名:
话虽如此……这有点复杂,所以也许我们应该考虑添加一个特定的 valueTransformer 来允许更改 style= 属性。由于 Ember 对该属性的 xss/htmlSafe 保护,这有点棘手……但我相信我们可以让一些东西起作用。