Ember 在组件生命周期中尽快查询存储

Ember Query store asap in component lifecycle

我正在玩拖放 UI。每个 person 都有一个可以拖到某个位置的组件,并且对该位置的引用保存在关联的 position 模型中。多个不同的 positions 是可能的,所以它需要是一个单独的模型。

随着每个 person 组件的创建,我想查询商店以找到特定的 position,然后使用它来设置组件在页面上的绝对位置。

我尝试查询商店以在不同的 lifecycle hooks 期间找到特定的 posiiton,但商店似乎不可用。何时何地可以这样做?

我的另一个想法是,我也许应该在路线的控制器中为每个学生找到特定的 position,然后将它们传递到组件中,但我真的更愿意保留尽可能在组件内。

一般来说,不鼓励在组件中访问商店,但您绝对可以这样做。 store 是一个服务,所以你可以将它注入到组件中。为此,您需要像这样创建一个初始化程序:

export function initialize(application) {
  application.inject('component', 'store', 'service:store');
}

export default {
  name: 'component-injections',
  after: 'ember-data',
  initialize: initialize
};

有了这个,商店将以组件的形式提供,您可以随心所欲地使用它。