我有一个基于下拉列表<select>
的组件,我希望能够放入我的余烬应用层次结构中的任何模板中。
这将显示网站上所有文章(模型)的列表。每当我使用这个组件时,我所需的路径需要加载数据并传递给模板。
问题: 如何只在呈现组件时加载此数据?
我已经reading this,但还没有找到一个好的解决方案。我希望该组件能够提供数据源,但这似乎令人不悦。
在我的组件预渲染中执行ajax请求会不会很糟糕?
答案 0 :(得分:3)
如果您需要预先加载数据,则可以使用initializers
为您执行此操作。如果需要,您可以使用此数据并注入任何控制器,路由或所有控制器。这是一种更易于维护的方式。
对于您的情况,您可以让特定的控制器注入文章。然后在其他所需的控制器中使用needs
使用此控制器数据,从而进入组件。
通过这种方式,您可以获得所有组件实例的数据。在组件内部传递商店对象主要是反模式( 取决于用例 )。
组件应该没有数据收集的麻烦,应该专注于逻辑和演示。
如果想了解有关如何使用initializers
的更多信息,可以find it here