具有自己数据源的可重用成员组件

Reusable ember component with its own data source

本文关键字:成员 组件 自己 数据源      更新时间:2024-07-03

我有一个基于<select>的下拉组件,我希望它能够放入我的ember应用程序层次结构中的任何模板中。

这将显示网站上所有文章(模型)的列表。不过,每当我使用这个组件时,我所在的路由都需要加载数据并传递给模板。

问题:如何仅在渲染组件时加载此数据一次?

还有我一直在读这篇文章,但还没有想出一个好的解决方案。我希望该组件提供数据源,但这似乎不受欢迎。

在我的组件预渲染中只执行ajax请求会不会很糟糕?

如果您需要预加载数据,那么您可以使用initializers来完成这项工作。如果需要,您可以使用这些数据并注入到任何控制器、路由或所有控制器。这是一种更易于维护的方式。

对于您的情况,您可以让一个特定的控制器将文章注入其中。然后在其他所需的控制器中使用needs来使用该控制器数据,从而将其转换为组件。

通过这种方式,您可以获得组件的所有实例的可用数据。在组件内部传递存储对象主要是反模式取决于用例,尽管

组件应该摆脱数据收集的头痛,并且应该专注于逻辑和表示。

如果想了解更多关于如何使用initializers的信息,可以在这里找到