kotlin - TornadoFX - 实例化解耦控制器的正确方法?
问题描述
我有一个与视图类没有直接耦合的控制器,即它订阅来自事件总线的事件,仅此而已。
我在 View 类 ( by inject()
) 中任意创建它,但它确实不需要在那里。有没有办法告诉 TornadoFX 应该以其他方式创建它?
解决方案
TornadoFX 不进行任何注释扫描,因此无法添加@Startup
注释或类似的东西。确保它被实例化的最简单方法实际上是将它注入到您的App
子类中。这为 IMO 提供了一种务实、干净且可维护的方法 :)
编辑:实际上最好使用find()
, 以确保它实际上是立即创建的,因为inject()
它是懒惰的。
val ctrl = find<MyController>()
推荐阅读
- svelte - SvelteKit:如何进行基于 slug 的动态路由?
- reactjs - (反应)如何将变量值发送到其他组件?
- python - 使用python按不同颜色的位置绘制图
- rest-assured - 如何放心提取请求的URL?
- python - 如何在 python 中将“日/月”字符串转换为日期并将其与 Odoo 日期字段进行比较?
- javascript - React Router更改地址但不加载第二页
- python - 如何使用 Python Selenium 获取部分 html 源代码?
- html - 如何在弹性框中居中 h6 标签
- c# - 如何使用多个主键表动态创建 DevExpress XPO?
- python - 使用 sklearn 进行 Python 高斯过程回归