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

时间:2015-02-27 17:34:49

标签: javascript ember.js ember-data

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

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

问题: 如何只在呈现组件时加载此数据?

我已经reading this,但还没有找到一个好的解决方案。我希望该组件能够提供数据源,但这似乎令人不悦。

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

1 个答案:

答案 0 :(得分:3)

如果您需要预先加载数据,则可以使用initializers为您执行此操作。如果需要,您可以使用此数据并注入任何控制器,路由或所有控制器。这是一种更易于维护的方式。

对于您的情况,您可以让特定的控制器注入文章。然后在其他所需的控制器中使用needs使用此控制器数据,从而进入组件。

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

组件应该没有数据收集的麻烦,应该专注于逻辑和演示。

如果想了解有关如何使用initializers的更多信息,可以find it here